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

1. 核心转变:问答机器人 → 任务代理
当今大多数AI系统仍然是基于上下文的问答机器人:
• 它们擅长回答问题
• 在压力下会产生幻觉
• 缺乏执行、安全性和一致性方面的保证
💡 关键洞见:不要扩展上下文,而是构建它。
2. 三层架构
🧱 1. 静态上下文 — 规则(始终启用)
- •心智模型:员工手册
- •始终加载
- •定义身份、编码标准、行为约束
- •防止幻觉和风格漂移
- •小巧、稳定、可人工编辑
🛠️ 2. 动态上下文 — 技能(按需加载)
- •心智模型:工具箱
- •仅在需要时加载
- •每个技能都是自包含的能力
- •保持上下文窗口整洁
⚓ 3. 确定性钩子 — 防护栏
- •心智模型:安全与合规层
- •非概率性
- •在LLM推理前后运行
- •强制执行绝不能失败的规则
3. 推荐项目结构
我的任务代理/ ├── .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"已创建工单 {ticket_id},优先级={priority}"
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/如果您的代理只能回答问题,那它只是一个聊天机器人。如果它能可靠地执行工作,那才是一个任务代理。


