简介:本文以智能OnCall场景为例,系统分享AI Agent开发落地的核心经验:从传统值班痛点切入,拆解知识库Agent、对话Agent、运维Agent三大能力的架构分工与协同链路,深入讲解Prompt工程、Function Calling、RAG、MCP等关键技术的原理与实践要点,对比ReAct与Plan-Execute设计模式的选型思路,并给出工程避坑清单,帮助读者少走弯路。
传统OnCall值班存在三类典型痛点:
Agent的核心价值在于:以大模型为“大脑”,把散落在知识库、监控系统、日志服务、工单平台里的能力串联起来,把“自动应答”和“智能排查”变成一条流水线。目标不是取代人,而是把人从重复劳动中解放出来,只处理真正需要人类决策的部分。
第一条经验:不要一上来就幻想一个全能Agent,先按职责拆分。
协同链路示意:
用户提问-> 对话Agent意图识别与路由-> 知识库Agent检索依据 / 运维Agent调用工具查现场-> 结果汇总-> 对话Agent生成"结论 + 依据 + 建议动作"-> 低置信度时转人工
两种组织方式的取舍:多Agent编排职责清晰、各自上下文干净,适合能力域较多的大型系统;单Agent多工具实现简单、链路短,适合初期快速落地。实践建议是:先单Agent多工具跑通闭环,规模上来后再拆分——过早拆分只会引入复杂的路由问题。
System Prompt定义Agent的身份、职责边界、输出格式与安全约束,全局生效;User Prompt承载当次任务输入。常见错误是把关键约束写在对话内容里,多轮之后模型就“忘掉”了规则。一个可参考的System Prompt骨架:
# 角色你是团队OnCall助手,负责告警答疑与初步排查。# 可用工具- query_monitor:查询监控指标- search_logs:检索日志- search_kb:检索知识库# 行为约束1. 不确定时明确说明,禁止编造指标数值与故障原因;2. 所有结论必须来自工具返回结果或知识库检索内容;3. 只读操作自动执行,写操作(重启、变更)必须请求人工确认。# 输出格式按"结论 / 依据 / 建议动作"三段式输出。
经验:把Prompt当代码管理——版本化、变量化、可回归测试。改一句话都可能导致行为漂移,没有评测就上线等于裸奔。
原理:应用层把工具的名称、用途、参数结构随请求一并传给模型;模型在需要时输出结构化的“调用意图”而非自然语言;真正执行由应用代码完成,再把结果回喂给模型继续推理。模型只“点菜”,不“下厨”——这一点决定了所有安全控制都必须在应用层实现。
工具设计的实战经验:
Function Calling解决“模型怎么调用工具”,但每个系统都自建一套工具接入与鉴权,重复成本很高。MCP(Model Context Protocol,模型上下文协议)这类标准化协议解决的是“工具怎么统一接入”:把模型与工具、数据源之间的连接方式标准化,工具提供方实现一次服务端即可被多个Agent复用,鉴权、传输、能力描述都有统一约定。实践建议是把内部监控、日志、工单等平台能力统一封装为标准化工具服务端,Agent侧按协议接入,避免每个Agent重复开发胶水代码。
大模型不知道你们团队的内部故障案例,所以需要RAG(检索增强生成):文档切分 → 向量化入库 → 检索 → 重排 → 生成,让模型“开卷考试”。踩坑总结:
ReAct(Reasoning + Acting)的循环是:思考 → 行动 → 观察结果 → 再思考,直到得出结论。以“接口5xx飙升”告警为例:先查监控定位异常实例 → 拉取该实例错误日志 → 发现数据库连接超时 → 检索知识库匹配历史预案 → 输出结论。每一步都依赖上一步的观察,天然适合排查这种“事先不知道路径”的任务。
Plan-and-Execute则先让模型生成完整执行计划,再逐步执行,发现偏差时重新规划。适合步骤相对确定的长链路任务,比如例行巡检。
选型经验:排查类任务选ReAct;流程明确的任务选Plan-Execute或直接用确定性工作流编排,别让模型自由发挥;生产系统常用混合形态——外层做任务规划与拆解,内层子任务用反应式执行。无论哪种模式,都要设置最大步数与超时,防止模型陷入死循环空烧token。
从概念到能力,建议按四个台阶递进:第一步搭最小RAG问答,吃透切分、检索、生成全链路;第二步做单工具Agent,彻底理解Function Calling的“请求—执行—回喂”闭环;第三步做多工具ReAct Agent,体会规划与纠错;第四步做多Agent协作系统,处理路由、上下文隔离与结果汇总。
每一步都问自己三个问题:模型怎么知道该调哪个工具?结果不对怎么归因?怎么证明比上一版更好?能把这三问答清楚,Agent开发的核心就算真正入门了——这些能力无论对实际项目还是求职面试,都是实打实的加分项。