Managed Deep Agents: checklist trước khi triển khai agent production
Managed Deep Agents đưa Deep Agents lên LangSmith Cloud theo mô hình Python project: test local với mda dev, triển khai bằng mda deploy. Đây là các điểm cần kiểm thử về memory, lịch chạy, tool, sandbox và quan sát trace.
Một agent Python có thể trả lời câu hỏi và gọi tool trên máy cá nhân. Nhưng để chạy trong Slack, thực hiện tác vụ định kỳ, nhớ ngữ cảnh qua nhiều phiên hay chạy code trong môi trường tách biệt, phần logic của agent mới chỉ là một nửa bài toán.
Managed Deep Agents của LangChain nhắm vào lớp vận hành đó. Developer vẫn định nghĩa agent, prompt và tool trong một project Python; LangSmith Cloud đảm nhận runtime production như durable threads, tracing, sandbox và schedule. Luồng cơ bản là chạy thử với mda dev, rồi triển khai bằng mda deploy.
Dịch vụ hiện ở public beta trên LangSmith Cloud. Trước khi triển khai, đừng chỉ kiểm tra agent có “trả lời hay” hay không. Hãy kiểm tra cả memory, quyền gọi tool, lịch chạy và khả năng quan sát lỗi.
Managed Deep Agents thay đổi gì?
Theo LangChain, một Managed Deep Agent là một project Python thông thường. File bắt buộc là agent.py, dùng definedeepagent để khai báo agent. Prompt hệ thống có thể nằm ở instructions.md; playbook nghiệp vụ đặt trong skills/; custom tool là các hàm Python dưới tools/.
Ví dụ research assistant tối thiểu trong bài giới thiệu:
python
from manageddeepagents import definedeepagent
agent = definedeepagent(
name="research-assistant",
model="openai:gpt-5.5",
tools=[{
"type": "websearch"
}],
)
Nếu đã dùng Deep Agents SDK, điểm khác biệt chính là:
createdeepagent trả về compiled agent để bạn tự chạy và tự quản lý backend, store, checkpointer và server.
definedeepagent để runtime managed đảm nhận phần compile và vận hành agent.
Bạn vẫn chịu trách nhiệm về instruction, tool, model, phân quyền và đầu ra. Đổi lại, LangSmith vận hành lớp runtime thay cho việc bạn tự ghép server, durable thread, streaming run và scheduler.
LangChain cho biết mỗi deployment chạy trên LangSmith Agent Server, có durable threads và streaming runs. Công ty cũng nói GTM Agent, Open SWE và Content Studio đang dùng mô hình này; Content Studio giảm khoảng 80% lượng code sau khi chuyển đổi. Đây là số liệu do LangChain công bố, không phải benchmark độc lập.
Từ thư mục trống đến local agent
LangChain đưa ra luồng khởi tạo sau:
bash
uvx --from managed-deepagents mda init research-assistant
cd research-assistant
uv sync
uv run mda dev
uv run mda deploy
Đừng để mda deploy trở thành lần chạy thử đầu tiên.
mda dev khởi động local Agent Server và mở agent trong LangSmith Studio. Tại đây, bạn có thể chat với agent và xem trace của từng run, gồm các bước trung gian và tool call.
Một quy trình kiểm thử local có thể gồm:
Khởi tạo project và cài dependency.
Kiểm tra agent.py: model, tool và phạm vi công việc có đúng không.
Viết instructions.md: quy tắc trả lời, điều kiện gọi tool và giới hạn dữ liệu.
Chạy:
bash
uv run mda dev
Gửi các yêu cầu đại diện cho công việc thật: yêu cầu đơn giản, yêu cầu mơ hồ, yêu cầu cần dùng tool và yêu cầu agent phải từ chối.
Đọc trace để đối chiếu hành vi: agent gọi đúng tool chưa, có gọi lặp lại không, input cho tool có hợp lệ không.
Trace không chỉ hữu ích khi có exception. Nó giúp phát hiện instruction khiến agent đi đường vòng, tool nhận sai input hoặc một yêu cầu đơn giản lại kích hoạt hành động không cần thiết.
Các capability nên kiểm thử trước khi deploy
Managed Deep Agents thêm capability production qua file hoặc thư mục trong project. Theo LangChain, mda deploy sẽ thiết lập các thành phần mà nó tìm thấy.
| Thành phần | Khai báo trong project | Điểm cần kiểm thử |
|---|---|---|
| Memory | memory.py | Dữ liệu có được tách đúng giữa user và thread không? |
| Schedule | File trong schedules/ | Cron, timezone và prompt tự chạy có đúng không? |
| Slack channel | channels/slack.py | Ai có thể kích hoạt agent và nhận phản hồi? |
| Sandbox | sandbox/ | Agent được chạy code và thao tác filesystem ở phạm vi nào? |
| Identity | identity.py | Caller có được xác thực trước khi dùng private thread, memory và credential không? |
| Connections | Connections | Người dùng có thể tự ủy quyền OAuth cho tài khoản của họ không? |
| Subagents | Khai báo subagents | Tác vụ nền có cần giới hạn quyền hoặc theo dõi trạng thái không? |
Memory: kiểm tra tách ngữ cảnh
Mặc định, agent chỉ nhớ thread hiện tại. Khi thêm memory.py, agent có thể giữ tri thức qua nhiều thread: một lớp dùng chung cho mọi caller, lớp riêng theo user hoặc kết hợp cả hai.
Với assistant nội bộ hay agent trong sản phẩm, nên tạo các caller khác nhau để kiểm tra ngữ cảnh có bị lẫn hay không. Nếu dùng shared memory cho tri thức chung, instruction cũng nên phân biệt rõ dữ liệu nào có thể dùng chung và dữ liệu nào phải giữ riêng.
Schedule: coi như tác vụ không có người giám sát
Ví dụ schedule từ LangChain:
python
from manageddeepagents import defineschedule
schedule = defineschedule(
cron="0 8 1-5",
timezone="America/LosAngeles",
prompt="Write the daily digest."
)
File này nằm trong schedules/dailydigest.py. Sau khi deployment hoạt động, mda deploy sẽ provision schedule.
Hãy kiểm tra cron, timezone và prompt trước khi triển khai. Một agent chạy theo lịch không có người dùng trực tiếp chỉnh lại yêu cầu mơ hồ. Nếu schedule gọi tool hoặc browser, cần xác định rõ phạm vi hành động phù hợp với một run tự động.
Tool, sandbox và human approval
Managed Deep Agents có web search tích hợp do Parallel cung cấp, không cần account hoặc API key riêng. Agent cũng có thể làm việc trong browser và chuyển quyền điều khiển cho người dùng khi trang web yêu cầu đăng nhập.
Thư mục sandbox/ cung cấp filesystem và shell tách biệt để agent chạy code mà nó viết. Đây là capability hữu ích cho các tác vụ như incident triage hoặc build-and-verify, nhưng không thay thế việc kiểm tra input và quyền của tool.
LangChain cho biết có thể thiết lập interrupton trong agent definition để tạm dừng trước một số tool call và chờ phê duyệt của con người. Cơ chế này đặc biệt đáng cân nhắc với các hành động khó đảo ngược, như tạo pull request, gọi API nghiệp vụ hoặc dùng credential của người dùng.
Evals, trace và bàn giao vận hành
LangChain cung cấp lệnh sau để khởi tạo Harbor eval workspace trong evals/:
bash
mda evals init -i
Theo bài giới thiệu, lệnh này thiết lập workspace và bàn giao cho coding agent viết các task eval. Tuy vậy, team vẫn cần xác định các tình huống đáng đưa vào bộ test, chẳng hạn:
Yêu cầu thiếu dữ kiện hoặc mâu thuẫn.
Tool timeout hoặc trả lỗi.
Caller không đủ quyền.
Input có nguy cơ dẫn tới lộ dữ liệu.
Tác vụ cần human approval.
Sau deploy, instructions.md và skills/ được đồng bộ vào LangSmith Context Hub. Bạn có thể chỉnh chúng trong Context Hub mà không cần redeploy. Nếu phiên bản trên Hub đã thay đổi từ lần deploy gần nhất, CLI sẽ hỏi chọn phiên bản cần giữ.
Durable memory cũng nằm trong Context Hub, còn các run được trace trong LangSmith. Vì thế, team nên thống nhất ai được sửa instruction hoặc skill trên Hub, thay đổi nào cần đưa lại vào repository và ai phụ trách đọc trace khi xảy ra sự cố.
Mỗi deployment còn cung cấp Agent Server API để ứng dụng tạo thread và stream run. Nó cũng có MCP endpoint tại /mcp, cho phép MCP client như Claude Code gọi agent như một tool. Khi tích hợp qua API hoặc MCP, nên kiểm thử identity và input ở cả hai đường gọi, thay vì chỉ thử chat trong Studio.
Checklist trước khi chạy mda deploy
[ ] agent.py dùng đúng model, tool và phạm vi nghiệp vụ.
[ ] Đã chạy uv run mda dev và đọc trace của các luồng thành công lẫn thất bại.
[ ] instructions.md nêu rõ giới hạn hành vi của agent.
[ ] Memory đã được kiểm tra giữa nhiều user và nhiều thread.
[ ] Schedule đã kiểm tra cron, timezone và prompt chạy tự động.
[ ] Tool nhạy cảm có điểm dừng phê duyệt qua interrupton khi phù hợp.
[ ] Sandbox, identity và Connections đã được rà soát quyền truy cập.
[ ] Team biết cách xem LangSmith trace và quản lý thay đổi ở Context Hub.
[ ] Đã xác định cách app hoặc MCP client gọi endpoint /mcp.
Managed Deep Agents không loại bỏ phần engineering của agent. Nó chuyển trọng tâm từ tự dựng runtime sang kiểm thử hành vi, quyền truy cập và khả năng quan sát. Khi local test đủ chặt, mda deploy sẽ là bước triển khai có kiểm soát thay vì một lần thử vận may.