008|Agent 项目工程化:代码组织、测试、部署
Agent 项目怎么写代码、怎么组织、怎么上线,这是面试里考察工程能力的关键。
核心结论:Agent 工程化不是简单地把 prompt 和工具拼在一起,而是要有清晰的代码分层、可测试的设计、可观测的部署和可回滚的迭代机制。
一、项目代码结构
推荐分层:
agents/ # 每个 Agent 的 prompt、工具、状态定义
tools/ # 工具实现和注册
orchestrator/ # 调度器、路由、状态管理
memory/ # 短期/长期记忆实现
state/ # 共享状态定义
eval/ # 测试和评估
config/ # 配置、模型、权限
server.py # 服务入口
二、每个 Agent 的封装
每个 Agent 应该独立:
class DataQueryAgent:
def __init__(self, llm, tools, memory):
self.llm = llm
self.tools = tools
self.memory = memory
def run(self, question):
# 1. 理解意图
# 2. 调用工具
# 3. 总结结果
pass
三、测试策略
- 单元测试:单个 Agent 的输出。
- 集成测试:多 Agent 流程。
- 回归测试:保证改动不破坏历史用例。
- 在线评估:用户反馈 + 业务指标。
四、部署与运维
- 模型调用做成异步或带超时。
- 失败重试 + 降级。
- 记录每次调用、工具、参数、结果。
- 监控延迟、成本、成功率、幻觉率。
五、面试问答
Q:Agent 项目怎么组织代码?
我会按职责分层:agents 放每个 Agent 的 prompt 和工具,tools 放工具实现,orchestrator 负责调度,memory 管记忆,eval 做测试评估。这样每个模块可独立测试。
六、一句话总结
Agent 工程化 = 清晰分层 + 可测试 + 可观测 + 可回滚。
下一步推荐
- 009|Agent 测试、监控与可观测性
- 010|Agent 安全:提示词注入与越狱防御