AI Agent 求职专题(二):Agent 基础、架构与工作流设计

从 LLM、上下文、工具、状态和验证出发,建立能够解释、实现和排错 Agent 的统一心智模型。

Agent 到底是什么

普通 LLM 调用通常是输入上下文后得到输出。Agent 则把输出放进闭环:模型判断下一步、请求工具、读取结果、更新任务状态,并在达到停止条件后交付结果。

形态输入核心动作适合场景
普通对话用户问题一次生成回复问答、写作、摘要
RAG 应用问题 + 检索上下文检索后生成知识问答、文档助手
固定 Workflow结构化任务按代码节点执行审批、报表、同步
单 Agent自然语言目标动态选择工具并循环路径不完全确定
多 Agent复杂目标多个专业角色协作分工、复核、并行

Agent 不是 Workflow 的替代品。流程越确定、风险越高、审计越强,就越应该由代码控制边界;模型负责模糊输入和局部判断。

参考架构

用户 / API
  -> 会话层:鉴权、租户、限流、请求 ID
  -> 编排层:状态、规划、分支、循环、审批
  -> 模型层:路由、结构化输出、流式响应
  -> 能力层:RAG、Memory、Tools、MCP
  -> 数据层:业务库、向量库、缓存、对象存储
  -> 治理层:Trace、评测、成本、审计、Guardrail
  -> 交付层:答案、文件、业务动作、人工接管

讲架构时可以按请求生命周期展开:身份和权限判断,读取任务状态,模型决定下一步,工具在受限环境执行,结果写回状态和 Trace,最终经过输出校验和业务验收。

执行循环与状态机

agent_looppseudo
while not finished and steps < max_steps:
    decision = model(messages, tools, state)
    if decision requests a tool:
        validate(decision.tool, decision.arguments)
        result = execute(decision.tool, decision.arguments)
        state = reduce(state, decision, result)
        messages.append(tool_result(result))
    else:
        answer = validate_output(decision.content)
        return deliver(answer)
raise StepLimitExceeded()

循环要显式设置步数、时间、权限和交付四类边界。需要暂停后继续的任务还要持久化任务 ID、当前节点、输入摘要、工具记录、待审批动作和失败原因,不能依赖进程内存。

ReAct、规划与 Workflow

模式工作方式优点风险选择建议
ReAct思考一步、行动一步灵活步骤多、成本高路径难以提前确定
Plan-and-Execute先计划、再执行长任务容易检查计划可能过时阶段明确但细节动态
Supervisor主 Agent 调度专业 Agent分工清晰路由和上下文复杂多个专业能力统一入口
固定 Workflow代码控制节点和分支稳定、可审计灵活性较低流程明确或高风险

不要为了体现“智能”就引入多 Agent。先用单 Agent 或 Workflow 建立可测量基线,再用实验结果证明拆分带来收益。

上下文与记忆

类型内容示例生命周期注意事项
短期上下文消息、工具结果、约束一次任务超长时摘要或裁剪
工作记忆计划、中间变量、待处理项任务期间结构化并可恢复
长期记忆偏好、稳定事实、历史结论跨会话来源、可信度、删除
外部知识文档、数据库、业务记录数据系统管理通过检索和权限进入

历史消息不能无条件拼接。保留当前任务必需原文,把早期内容压缩成摘要,把长期事实写入带来源和更新时间的存储,并在读取时再次检查权限和相关性。

架构选型规则

问题特征优先方案原因
流程固定且有审批Workflow + 少量 LLM 节点边界清晰、便于审计
需要企业知识RAG + 结构化回答知识更新与模型解耦
工具路径动态但风险低单 Agent + 受限工具保留灵活性,控制复杂度
多个专业能力协作Supervisor 或 Handoff职责和上下文边界可见
写入、支付、删除确定性代码 + 人工审批避免模型直接决定高风险动作

最小练习

实现一个“项目状态助手”:Agent 可调用两个只读工具,并在证据不足时明确说明。

  • ✓工具使用 JSON Schema,拒绝未知参数。
  • ✓设置最大 4 步、单工具 3 秒、整条任务 10 秒超时。
  • ✓保存模型请求、工具参数、工具结果和答案 Trace。
  • ✓工具失败时返回结构化错误,禁止假装成功。
  • ✓用成功、无权限、不存在、超时、冲突等问题回归测试。

完成后继续阅读 RAG 知识库工程。