Skip to content

Agent 的代码形态与工作流边界 ​

1. 解决什么问题 ​

“生成 Agent”不是一个神秘进程,也不必须是单独部署的服务。本项目把它落实为角色指令、上下文构造、模型调用循环、工具权限和结构化结果,外层用程序定义教材必须经历的步骤。

2. 原理与术语 ​

Workflow 的主要路径由代码规定;Agent 允许模型在给定目标与工具范围内选择动作。两者可以嵌套。教材系统是显式工作流包围受限模型节点,而不是完全自主决定交付流程的多机器人系统。

3. 输入、输出和执行 ​

生成节点输入需求、来源、规则与既有事实,输出 Lesson;评审节点读取教材并输出 Review;修订节点接收问题清单,只输出 Patch。素材规划角色仅在人工通过后运行。角色职责与图节点不是一一对应的产品服务。

4. 容易混淆 ​

双 Agent 不意味着两台机器、两个模型或两个独立线程。当前四种内部 role 为 generator、reviewer、reviser、producer;其中 reviser 复用生成职责,producer 专管工具计划。简历中的“双 Agent”描述的是生成与审核的核心职责划分。

5. 最小示例 ​

从实际代码观察角色定义,无需连接模型:

python
from app.providers import SYSTEMS
assert set(SYSTEMS) == {"generator", "reviewer", "reviser", "producer"}
print(SYSTEMS["reviewer"])

它打印的提示词只是角色的一部分;还必须结合 context 与 ToolSession 才能解释运行边界。

6. 本项目实现 ​

graph.context 为每次调用重新组装数据。评审可以看到教材、来源和规则,却看不到生成模型的对话过程与工具回传记录。修订额外接收 review 和 human_note。相同模型仍可能有共同盲点,所以确定性校验与人工复核不能省略。

7. 源码位置 ​

依次阅读 system/app/providers.py::SYSTEMS/run_model、graph.py::context/build_graph、tools.py::ToolSession。理解这三个位置后,才能准确解释“自定义 Agent”由哪些程序对象组成,而非只引用框架名称。

8. 取舍与替代 ​

固定业务顺序适合明确编排,避免模型跳过审核。工具选择留给模型能表达局部需求,但也带来预算与参数错误。全流程直接程序调用更简单,却无法展示模型驱动工具;完全自主规划则增加测试路径,不符合本次教材交付边界。

9. 实验与验收 ​

在 system 目录创建两个演示任务,仅改变修订预算:

bash
curl -s -H "X-API-Key: ${LAB_API_KEY:-}" -H 'Content-Type: application/json' \
  -d '{"theme":"校园生活","scenario":"business_error","max_revisions":0}' http://127.0.0.1:8000/api/jobs
curl -s -H "X-API-Key: ${LAB_API_KEY:-}" -H 'Content-Type: application/json' \
  -d '{"theme":"校园生活","scenario":"business_error","max_revisions":2}' http://127.0.0.1:8000/api/jobs

验收比较版本数量与评审问题:前者应直接转人工,后者允许局部修订。说明这个分支由程序决定,不是模型决定预算。

10. 故障排查 ​

角色串上下文时先查 context 字段;重复工具调用先查轮次预算;绕过人工时查图边与审核状态。不要只修改提示词解决数据库权限或版本错误,这些需要程序约束。

11. 面试题与追问 ​

问:你开发的 Agent 实际是什么? 是受限的模型执行循环,配合角色上下文、工具和契约。追问:自主性在哪里? 在真实模式下选择工具与生成判断,主要业务顺序由图限定。再追问:双角色保证质量吗? 不保证,需要评测和人工证据。

STAR 应用:假设实验场景,R 为应核对的证据
对应S:情境T:目标A:行动R:验收证据
主问面试要求说明自定义Agent讲清代码形态对应指令、上下文、工具循环与契约能指出四类对象的实际函数
追问一模型想跳过审核限制自主决策范围固定图边和人工通过门没有批准版本不能开始正常素材交付
追问二两个角色都漏掉事实错误承认共同盲点加入确定规则与标注用例分别记录漏检与人工发现,不宣称双角色必然正确

这些是设计讨论的参考表达,实际执行前不能改写为已取得的历史成果。

12. 官方资料与版本 ​

Workflows and agents、LangGraph overview。项目 LangGraph 1.0.10;核验日期 2026-11-03。名称不应掩盖实际控制权,扩展阅读见Agent 与 Workflow 对比。

学习复现系统 · 事实、实验与假设分开记录