分层架构
编排层(Orchestration)是 Agent 的「大脑」:接收用户意图,拆解为子任务,决定调用哪些工具、以何种顺序执行,并根据中间结果动态调整。通常由 LLM 驱动,配合 ReAct、Plan-and-Execute 等模式。
执行层(Execution)是「手脚」:封装 API、数据库、文件系统等能力为工具(Tools),按编排层指令执行并返回结果。执行层应无状态、可水平扩展,便于替换和测试。
状态层:持久化对话、任务进度、工具输出,支持断点续跑、审计和调试。可用 Redis、数据库或专用 Agent 记忆系统。
工具设计
工具是 Agent 与外部世界交互的接口。设计要点:
- 单一职责:一个工具做一件事,便于组合和复用。
- 幂等性:相同输入多次调用结果一致,支持重试和容错。
- Schema 明确:用 JSON Schema 描述参数,便于 LLM 理解和校验。
- 细粒度:避免「万能工具」,拆成小工具让 Agent 灵活编排。
容错与可观测
重试:工具调用失败时指数退避重试,对非幂等操作需谨慎。超时:为每个工具和 LLM 调用设置超时,避免长时间阻塞。降级:关键路径失败时返回友好提示或转人工。
可观测:记录每次 LLM 调用、工具调用、token 消耗、延迟,便于排查问题和优化成本。结构化日志 + 追踪 ID 可串联完整请求链路。