Nhật ký công việc cho nhiệm vụ "Tích hợp ChatGPT với fi1osof.ru và haih-agent: Nhu cầu và Yêu cầu"
Giới hạn của ChatGPT: Không có bộ nhớ làm việc có thể định địa chỉ và tái sử dụng giữa các lần gọi Action
Vấn đề thực tế
Trong quá trình làm việc với tích hợp ChatGPT ↔ fi1osof.ru, chúng tôi đã gặp phải một nhóm giới hạn riêng biệt: ChatGPT có thể tạo ra một kết quả trung gian lớn và thực hiện một chuỗi các lệnh gọi API, nhưng lại thiếu một cơ chế thuận tiện để lưu kết quả này thành một đối tượng độc lập có thể định địa chỉ và sau đó tham chiếu đến nó trong các hành động tiếp theo.
Vấn đề này thể hiện rõ khi ghi một worklog lớn vào một task. Văn bản worklog đã được tạo sẵn trong cuộc trò chuyện, nhưng mỗi lần gọi createTaskWorkLog, toàn bộ nội dung đó lại phải được đưa vào lại trong các biến GraphQL.
Khi lần thử ghi đầu tiên kết thúc bằng lỗi resolver, việc thử lại buộc phải gửi lại toàn bộ đoạn Markdown dài đó từ đầu.
Tức là thực tế hiện đang thiếu một tầng trung gian dạng như sau:
tạo nội dung
→ lưu dưới dạng var/draft/artifact
→ nhận ID
→ sử dụng ID trong các thao tác API tiếp theo
Các công cụ hiện có và lý do tại sao chúng chưa đủ
Biến GraphQL (GraphQL variables)
Các biến GraphQL chỉ phù hợp để tham số hóa một yêu cầu HTTP duy nhất.
Chúng không tồn tại giữa các lần gọi và không cho phép tham chiếu đến kết quả của bước trước đó.
Lịch sử cuộc trò chuyện hiện tại
Mô hình nhìn thấy văn bản được tạo trước đó trong ngữ cảnh, nhưng lịch sử trò chuyện không phải là một đối tượng lập trình có thể định địa chỉ.
Bạn không thể truyền một cách đáng tin cậy thứ gì đó như thế này vào Action:
content = đoạn Markdown đã được tạo cách đây vài tin nhắn
Ở cấp độ HTTP/GraphQL, giá trị content thực tế vẫn là bắt buộc, do đó nó tiếp tục được tuần tự hóa lại (serialize) và gửi đi toàn bộ.
Các thực thể miền (Domain entities) của fi1osof.ru
Về mặt kỹ thuật, bạn có thể tạm thời lưu văn bản dưới dạng Task, File, Fact hoặc một thực thể vĩnh viễn khác, nhưng đây là ngữ nghĩa sai và làm ô nhiễm mô hình miền bằng dữ liệu runtime trung gian.
Vấn đề đòi hỏi một bộ nhớ làm việc phổ quát, độc lập với một thực thể kinh doanh cụ thể nào.
Tại sao điều này lại tệ
1. Truyền tải lại các payload lớn
Các văn bản dài, JSON, kết quả phân tích và các đối tượng khác phải được truyền qua Action hết lần này đến lần khác.
Điều này làm tăng kích thước yêu cầu và khiến việc tích hợp trở nên mong manh hơn.
2. Không có workflow nhiều bước chuẩn chỉnh
Không thể chia công việc thành các giai đoạn một cách tự nhiên:
tạo
→ lưu
→ kiểm tra
→ sử dụng
→ tái sử dụng
Thay vào đó, việc tạo và sử dụng kết quả trung gian thực chất bị ràng buộc chặt chẽ thông qua ngữ cảnh của cuộc trò chuyện hiện tại.
3. Khả năng chịu lỗi kém
Nếu mutation cuối cùng gặp lỗi, payload ban đầu sẽ phải được truyền lại từ đầu.
Bạn không thể đơn giản là chạy lại thao tác với ID của một artifact đã được lưu từ trước.
4. Vấn đề không chỉ giới hạn ở worklogs
Tương tự sẽ phát sinh đối với:
- mô tả tác vụ dài;
- báo cáo;
- tài liệu Markdown;
- cấu hình JSON;
- kết quả nghiên cứu;
- danh sách ID;
- kết quả truy vấn GraphQL;
- các payload đã chuẩn bị;
- dữ liệu cần truyền cho agent khác.
5. Điều này hạn chế các agentic workflows
ChatGPT trong sơ đồ của chúng tôi được sử dụng làm một runtime lập luận bên ngoài. Để hoạt động như một agent thực thụ, nó không chỉ cần bộ nhớ kiến thức dài hạn (knowledge memory) mà còn cần cả trạng thái workspace hoạt động có thể định địa chỉ giữa các hành động riêng lẻ.
Nếu không có điều này, agent bên ngoài có thể suy nghĩ và gọi API, nhưng kết quả làm việc trung gian của nó vẫn gắn liền với ngữ cảnh văn bản của cuộc trò chuyện thay vì trạng thái runtime chuẩn chỉnh.
Trừu tượng mong muốn
Thứ chúng ta cần không nhất thiết phải là một "file" hay một TaskWorkLogDraft chuyên biệt, mà là một value/artifact/variable có thể định địa chỉ mang tính phổ quát.
Tạm hình dung:
var_abc123 = "# Markdown lớn..."
Sau đó có thể thực hiện:
createTaskWorkLog(
taskId: "...",
content: var_abc123
)
hoặc sử dụng lại chính đối tượng đó trong một thao tác khác.
Cơ chế này sẽ biến thành một bộ nhớ làm việc trung gian giữa client AI bên ngoài và fi1osof.ru/haih-agent.
Nhiệm vụ liên quan để cải tiến haih-agent
Yêu cầu chi tiết đã được đưa ra trong một nhiệm vụ riêng của dự án haih-agent:
tasks/cmt839tuu000kmq0q72h9ppm9
"Thêm bộ nhớ làm việc có thể định địa chỉ và tái sử dụng cho các AI client bên ngoài".
Trong đó mô tả các yêu cầu đối với biến/artifact phổ quát, các scope/TTL có thể có, các kiểu string/json, việc tái sử dụng theo ID, khả năng chịu lỗi và việc sử dụng cơ chế này bởi các reasoning runtime bên ngoài khác nhau.
Kết luận cho việc tích hợp ChatGPT
Tích hợp hiện tại đã cho phép ChatGPT thực hiện công việc thực tế thông qua API, nhưng đã làm lộ ra một tầng quan trọng còn thiếu:
cần có một bộ nhớ hoạt động có thể định địa chỉ nằm giữa ngữ cảnh lập luận của ChatGPT và các thực thể miền vĩnh viễn của fi1osof.ru.
Đây không phải là một bản chỉnh sửa cụ thể chỉ vì một worklog duy nhất. Đây là một nhu cầu hạ tầng cho các agentic workflow nhiều bước, đặc biệt nếu một định danh agent duy nhất có thể hoạt động thông qua các cognitive runtime khác nhau.
Ghi nhận các nhu cầu tích hợp ChatGPT với fi1osof.ru và haih-agent, trước hết nhằm giảm chi phí lao động trí tuệ và duy trì ngữ cảnh tác nhân (agent) đầy đủ.