🏗️ 从QA机器人到任务代理:架构指南
TL;DR: 停止构建仅能回答问题的聊天机器人。开始构建能够实际完成工作的任务代理。
本指南解释了从单体QA机器人到使用静态规则、动态技能和确定性钩子的任务代理的架构转变——并提供具体的代码示例和开源参考。

1. 核心转变:QA机器人 → 任务代理
如今大多数AI系统仍然是上下文填充的QA机器人:
• 它们能够很好地回答问题
• 在压力下会产生幻觉
• 在执行、安全性和一致性方面缺乏保证
💡 关键见解:不要扩展上下文。要结构化它。
2. 三层架构
🧱 1. 静态上下文 — 规则(始终开启)
- •心理模型:员工手册
- •始终加载
- •定义身份、编码标准、行为约束
- •防止幻觉和风格漂移
- •小型、稳定、可人工编辑
🛠️ 2. 动态上下文 — 技能(按需)
- •心理模型:工具箱
- •仅在需要时加载
- •每个技能都是一个自包含的能力
- •保持上下文窗口清晰
⚓ 3. 确定性钩子 — 保护措施
- •心理模型:安全 + 合规层
- •不是概率性的
- •在LLM推理之前/之后运行
- •强制执行绝不能失败的规则
3. 推荐项目结构
my-task-agent/ ├── .cursorrules ├── main.py ├── tools/ │ └── linear_mcp.py └── README.md
4. 静态上下文示例:.cursorrules
# 角色 您是一名专注于生产级系统的高级Python工程师。 # 规则 - 永远不要使用print()进行调试 - 始终为函数添加类型提示 - 如果修改超过3个文件,请提出计划 # 行为 - 简明扼要 - 如有需要,请提出澄清问题 参考:https://github.com/PatrickJS/awesome-cursorrules
5. 动态技能示例 (MCP)
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("DevTools")
@mcp.tool()
def create_linear_ticket(title: str, priority: str = "low") -> str:
ticket_id = f"LIN-{hash(title) % 10000}"
return f"创建了优先级为={priority} 的票据 {ticket_id}"
if __name__ == "__main__":
mcp.run()
参考: https://github.com/modelcontextprotocol/python-sdk6. 确定性钩子示例
def compliance_check_hook(state):
user_input = state["messages"][-1].content.lower()
if "password" in user_input or "api_key" in user_input:
return {"error": "检测到安全违规"}
return agent_node(state)
参考: https://langchain-ai.github.io/langgraph/如果您的代理仅回答问题,那它就是一个聊天机器人。如果它可靠地执行工作,那它就是一个任务代理。
Take the next step
Putting what you read into practice.


