从Model到Harness的AI Agent教程

作者:梅琳marlin2026.11.13 03:32浏览量:0

简介:本文面向开发者、产品与技术负责人,系统梳理AI Agent的核心概念,围绕Model、Tool、Skill、Harness、Scaffolding与策略设计,给出从目标拆解、工具接入、上下文构建、执行循环到验证排查的完整教程,帮助读者建立可落地、可维护的Agent设计与优化方法。

一、教程目标:你将完成什么?

本教程的目标不是简单解释“AI Agent是什么”,而是帮助读者完成一套可用于实际项目的 AI Agent 设计、搭建、验证与优化流程。

完成本教程后,你应当能够:

  1. 明确区分 Model、Tool、Skill、Scaffolding、Harness 等核心概念;
  2. 理解一个 AI Agent 是如何从“模型输出”走向“任务闭环”的;
  3. 能够设计一个最小可运行 Agent,包括目标定义、工具注册、上下文组织、执行循环与反馈机制;
  4. 掌握 Agent 运行过程中的常见配置项与风险控制方法;
  5. 能够验证 Agent 是否完成任务,并对失败场景进行排查;
  6. 从性能、安全、稳定性、成本与可维护性角度提出优化方案。

简单来说,本教程要解决的问题是:
如何把一个大模型从“会回答问题”升级为“能够按目标执行任务”的系统。


二、适用读者与适用场景

1. 适用读者

本教程适合以下读者:

  • 开发者:需要实际搭建 Agent,接入工具、模型与执行流程;
  • 技术负责人:需要评估 Agent 架构边界,划分系统职责;
  • 产品经理:需要理解 Agent 能力边界,设计可交付的智能应用;
  • 运维人员:需要关注 Agent 运行稳定性、权限控制、日志审计与告警;
  • 初学者:希望系统理解 Agent 概念,避免被混杂术语误导。

2. 适用场景

AI Agent 适合处理“单次对话难以完成”的任务,例如:

  • 读取文件并分析内容;
  • 调用工具查询数据或生成结果;
  • 编写并运行脚本完成数据处理;
  • 在网页或服务之间完成多步骤操作;
  • 根据用户目标自动规划、执行、检查并修正任务结果;
  • 结合检索、工具调用与反馈机制完成复杂工作流。

需要注意的是,Agent 并不是所有场景的万能方案。对于简单问答、固定模板生成、一次性文本总结等任务,普通模型调用往往更高效。Agent 更适合目标复杂、步骤不确定、需要外部工具或反馈闭环的任务。


agent-">三、前置准备:搭建 AI Agent 前需要知道什么?

在开始搭建 Agent 之前,需要具备一些基础认知与环境准备。

1. 基础认知准备

你需要了解以下内容:

  • 大语言模型的基本能力:模型接收文本输入,输出文本结果;
  • 结构化输出的概念:模型可以按指定格式输出,例如固定字段、步骤列表或工具调用意图;
  • 工具调用的基本流程:模型提出调用意图,外部系统执行,结果再返回模型;
  • 状态管理的概念:Agent 需要保存任务目标、历史步骤、工具结果与中间产物;
  • 权限与安全边界:工具执行必须满足最小权限原则,高风险操作需要确认或隔离。

2. 运行环境准备

建议准备以下通用能力:

  • 一个可调用的大模型服务;
  • 一个执行 Agent 循环的运行时环境;
  • 工具执行模块,用于调用文件、检索、接口或脚本;
  • 日志记录模块,用于记录模型输出、工具调用、执行结果与耗时;
  • 权限控制模块,用于限制 Agent 可访问的资源;
  • 错误处理模块,用于处理超时、参数错误、工具失败等异常情况。

3. 设计输入准备

在设计阶段,建议先明确以下信息:

  • 任务目标是什么;
  • 成功标准是什么;
  • 允许 Agent 使用哪些工具;
  • 哪些操作需要用户确认;
  • 最大执行步数是多少;
  • 是否需要结构化输出;
  • 失败时是否需要重试、回退或终止。

这些内容会直接影响后续 Scaffolding、Policy 与 Harness 的设计。


四、核心概念:Model、Tool、Skill、Harness 分别是什么?

AI Agent 领域术语较多,但核心可以先围绕四个概念理解:Model、Tool、Skill、Harness。

1. Model:Agent 的核心大脑

Model 通常指大语言模型,是 Agent 的推理与决策核心。

它负责的事情包括:

  • 理解用户目标;
  • 判断当前任务状态;
  • 决定下一步做什么;
  • 选择调用哪个工具;
  • 组织工具调用参数;
  • 根据工具返回结果继续推理;
  • 判断任务是否完成。

但 Model 本身不是 Agent 的全部。模型的能力边界是:

  • 输入文本;
  • 输出文本;
  • 根据上下文生成下一步意图。

模型本身并不能直接读取文件、访问数据库、执行代码或调用外部接口。这些动作需要由外围系统完成。

因此,一个关键结论是:
Model 不等于 Agent。Model 是 Agent 的核心推理组件,但不是执行系统。

2. Tool:Agent 的原子执行能力

Tool 是 Agent 可调用的具体能力单元。

常见 Tool 包括:

  • 文件读取工具;
  • 文件写入工具;
  • 数据查询工具;
  • 代码执行工具;
  • 网页抓取工具;
  • 接口调用工具;
  • 检索工具;
  • 计算工具;
  • 日志查询工具。

Tool 的设计要点包括:

  • 名称清晰;
  • 功能单一;
  • 输入参数明确;
  • 返回值结构稳定;
  • 权限可控;
  • 错误可捕获;
  • 超时可控;
  • 支持审计记录。

一个设计良好的 Tool 不应该承担过多职责。例如,“读取文件”与“分析文件内容”可以拆分:前者负责获取内容,后者由模型完成。这样可以减少耦合,提高可维护性。

3. Skill:可复用的任务能力单元

Skill 可以理解为比 Tool 更高一层的能力封装。

一个 Skill 通常由以下部分构成:

  • 目标描述;
  • 适用场景;
  • 所需 Tool;
  • 调用顺序;
  • 提示词或策略模板;
  • 输出格式;
  • 失败处理方式。

例如:

  • “生成日报 Skill”;
  • “数据清洗 Skill”;
  • “网页信息采集 Skill”;
  • “故障排查 Skill”;
  • “文档摘要 Skill”。

Skill 的价值在于复用。
如果某个任务经常重复出现,就可以把它抽象成 Skill,避免每次重新设计提示词、工具组合与执行流程。

从层级关系看,可以这样理解:

  1. Model:负责思考与决策
  2. Tool:负责执行具体动作
  3. Skill:负责封装一类任务能力
  4. Harness:负责让整个系统稳定运行

4. Harness:Agent 的运行执行框架

Harness 是 Agent 系统落地的关键部分,负责把模型、工具、状态、权限与反馈连接起来。

Harness 通常负责:

  • 初始化任务;
  • 加载上下文;
  • 调用模型;
  • 解析模型输出;
  • 校验工具调用参数;
  • 执行工具;
  • 捕获执行结果;
  • 更新任务状态;
  • 记录日志;
  • 控制执行循环;
  • 判断停止条件;
  • 处理异常与重试;
  • 输出最终结果。

可以用一句话概括:

Scaffolding 更偏向“怎么想”,Harness 更偏向“怎么跑”。

如果缺少 Harness,模型即使有很强能力,也无法稳定完成多步骤任务。


五、Scaffolding、Context Engineering 与 Policy:如何让 Agent 想得更清楚?

在 Model 与 Harness 之间,还有几个重要概念:Scaffolding、Context Engineering 与 Policy。

1. Scaffolding:设计 Agent 的思考逻辑

Scaffolding 可以理解为 Agent 的思考支架,包括:

  • 角色设定;
  • 任务目标;
  • 规划方法;
  • 提示词结构;
  • 思考步骤;
  • 中间结果表达;
  • 停止条件;
  • 反馈格式。

Scaffolding 关注的是:
Agent 应该如何组织思路,如何逐步推进任务。

例如,对于复杂任务,可以要求模型先输出任务拆解,再判断需要哪些工具,再执行工具,最后汇总结果。这样可以减少模型直接给出不可执行答案的概率。

2. Context Engineering:管理输入信息

Context Engineering 是上下文工程,核心目标是让模型在每一步看到最合适的信息。

上下文通常包括:

  • 用户目标;
  • 当前任务状态;
  • 历史执行结果;
  • 可用工具说明;
  • 权限限制;
  • 输出格式要求;
  • 检索到的相关资料;
  • 失败提示;
  • 重试次数;
  • 当前时间、环境或状态信息。

上下文不是越多越好。上下文过长会带来几个问题:

  • 增加推理成本;
  • 降低关键信息命中率;
  • 导致模型忽略重要约束;
  • 放大无关信息带来的干扰。

因此,Context Engineering 的关键不是“把所有信息塞进去”,而是“只提供当前步骤需要的信息”。

常见做法包括:

  • 对历史信息进行摘要;
  • 只保留最近几步工具结果;
  • 将大文件拆分为检索片段;
  • 对工具返回结果进行压缩;
  • 使用结构化字段传递关键状态;
  • 明确告诉模型当前可用工具与禁止行为。

3. Policy:定义 Agent 的行为边界

Policy 是策略层,用于规定 Agent 可以做什么、不能做什么、何时需要确认、何时必须停止。

常见 Policy 包括:

  • 工具白名单;
  • 权限分级;
  • 高风险操作确认;
  • 最大执行步数;
  • 最大执行时长;
  • 最大工具调用次数;
  • 敏感数据过滤;
  • 输出内容校验;
  • 失败终止条件;
  • 重试策略。

例如,只读操作可以直接执行,但涉及写入、删除、发布、支付、对外发送等操作,应要求确认或进入审批流程。

Policy 是 Agent 安全运行的重要基础。
没有 Policy,Agent 可能会产生不可预期的执行行为。


六、实施步骤:如何搭建一个最小 AI Agent?

下面给出一个通用实施流程。该流程适用于大多数 Agent 初版设计与开发验证。

步骤 1:明确任务目标

首先要定义 Agent 要完成什么任务。

示例目标:

  • 读取用户上传的文件,并总结关键内容;
  • 根据用户问题检索资料并生成答案;
  • 调用代码工具处理数据并输出结果;
  • 检查系统日志并定位异常原因。

目标必须尽量具体。模糊的“智能助手”很难验证。

建议目标描述包含:

  • 输入是什么;
  • 输出是什么;
  • 成功标准是什么;
  • 允许使用哪些能力;
  • 不允许执行哪些操作。

例如:

  1. 任务:分析用户提供的文本文件。
  2. 输入:本地文本文件路径。
  3. 输出:包含主题、关键段落、结论和风险点的结构化摘要。
  4. 限制:不得修改原文件,不得访问网络。

步骤 2:定义模型职责

明确模型负责哪些事情。

通常模型负责:

  • 理解任务;
  • 规划步骤;
  • 判断是否需要调用工具;
  • 生成工具调用参数;
  • 解析工具结果;
  • 总结最终答案。

模型不负责:

  • 实际执行代码;
  • 直接访问文件系统;
  • 直接修改外部系统;
  • 绕过权限检查。

这样可以保持职责清晰,降低安全风险。

步骤 3:设计 Tool 清单

根据任务目标,列出所需 Tool。

例如,一个任务可能需要:

  • 读取文件;
  • 检索资料;
  • 调用计算服务;
  • 生成报告;
  • 写入输出文件。

每个 Tool 都应定义清楚:

  1. 工具名:read_file
  2. 描述:读取指定路径的文本文件内容。
  3. 输入:
  4. - file_path:文件路径
  5. - encoding:编码方式,可选
  6. 输出:
  7. - content:文件内容
  8. - status:执行状态
  9. 权限:
  10. - 只读
  11. 风险等级:
  12. - 低
  13. 超时:
  14. - 建议设置

工具设计原则:

  • 一个 Tool 只做一件事;
  • 参数尽量简单;
  • 返回结构稳定;
  • 错误信息可读;
  • 支持超时;
  • 支持权限控制。

步骤 4:设计 Skill 或任务模板

如果任务是常见类型,可以封装为 Skill。

例如“文件分析 Skill”:

  1. Skill 名称:文件分析
  2. 适用场景:用户上传文本文件并要求总结。
  3. 所需工具:
  4. - read_file
  5. - generate_report
  6. 执行流程:
  7. 1. 判断文件是否存在;
  8. 2. 读取文件内容;
  9. 3. 如内容过长,进行分段摘要;
  10. 4. 生成结构化分析;
  11. 5. 输出结果。
  12. 输出格式:
  13. - 主题
  14. - 关键结论
  15. - 风险点
  16. - 建议

Skill 的价值在于把常见任务的执行方式标准化。

步骤 5:搭建 Harness 执行循环

Harness 需要实现一个稳定循环。通用流程如下:

  1. 初始化任务
  2. 加载工具
  3. 加载策略
  4. 加载初始上下文
  5. while 任务未完成:
  6. 1. 组装当前上下文
  7. 2. 调用模型
  8. 3. 解析模型输出
  9. 4. 如果模型要求调用工具:
  10. - 校验工具权限
  11. - 校验参数格式
  12. - 执行工具
  13. - 记录结果
  14. - 将结果写回上下文
  15. 5. 如果模型表示任务完成:
  16. - 校验最终结果
  17. - 输出答案
  18. - 结束
  19. 6. 如果达到最大步数或出现异常:
  20. - 停止任务
  21. - 返回错误或降级结果
  22. 记录日志
  23. 输出结果

这里的关键是:
模型输出不是最终结果,执行结果才是。

模型可能提出工具调用,但 Harness 必须校验其合法性与安全性。

步骤 6:配置上下文与提示词

上下文需要围绕当前步骤组织。一个通用上下文结构可以包括:

  1. 系统约束:
  2. 你是任务执行助手,只能调用授权工具。
  3. 不得执行未授权操作。
  4. 任务目标:
  5. ...
  6. 当前状态:
  7. 当前步骤:...
  8. 已完成:...
  9. 待完成:...
  10. 可用工具:
  11. - 工具名称
  12. - 工具用途
  13. - 参数说明
  14. - 权限范围
  15. 历史结果:
  16. 仅保留最近必要信息
  17. 输出要求:
  18. 如果任务未完成,请输出下一步行动。
  19. 如果任务完成,请输出最终结果。

提示词应避免过度冗长。核心信息应放在显著位置,例如任务目标、工具列表、权限限制、输出格式。

步骤 7:加入 Policy 与安全控制

Policy 应在执行循环中生效,而不是只写在提示词里。

建议包括:

  • 工具白名单;
  • 参数校验;
  • 权限校验;
  • 高风险操作确认;
  • 最大步数限制;
  • 超时控制;
  • 重试次数限制;
  • 敏感信息过滤;
  • 输出格式校验;
  • 审计日志。

例如:

  1. 如果工具风险等级为高风险:
  2. 暂停执行;
  3. 请求用户确认;
  4. 记录确认结果;
  5. 未确认则终止。
  6. 如果单步执行超时:
  7. 终止当前工具;
  8. 记录错误;
  9. 按策略决定是否重试。
  10. 如果总步数超过上限:
  11. 终止任务;
  12. 返回当前中间结果或失败原因。

步骤 8:增加日志与可观测能力

Agent 是多步骤系统,必须记录关键信息。

建议记录:

  • 每次模型输入摘要;
  • 每次模型输出;
  • 每次工具调用;
  • 工具参数摘要;
  • 工具执行结果摘要;
  • 耗时;
  • 错误信息;
  • 重试次数;
  • 最终输出;
  • 任务状态。

日志应遵循脱敏原则,避免记录敏感数据。
对于高风险字段,应只记录字段名或状态,而不是完整内容。


七、配置说明:哪些配置会影响 Agent 效果?

Agent 的行为通常由多个配置共同决定。以下配置不需要依赖某个特定平台,均可作为通用设计参考。

1. 最大执行步数

用于限制 Agent 最多执行多少轮推理或工具调用。

建议:

  • 开发调试阶段可设置较小值,快速暴露问题;
  • 生产环境应设置上限,防止失控;
  • 对于复杂任务,可设置分阶段步数预算。

风险:

  • 过小会导致任务无法完成;
  • 过大会增加成本并可能产生循环。

2. 单工具超时时间

用于限制某个工具最长时间执行时间。

建议:

  • 根据工具类型设置不同超时;
  • 对外部接口调用设置更严格超时;
  • 对代码执行类工具设置资源与时间限制。

风险:

  • 过短导致误失败;
  • 过长导致任务阻塞。

3. 工具白名单

限制模型只能调用允许的工具。

建议:

  • 按任务动态加载工具;
  • 高风险任务只开放必要工具;
  • 禁止模型自行创建工具或调用未注册工具。

4. 参数校验强度

模型生成的工具参数可能不合法,因此必须校验。

建议:

  • 必填字段校验;
  • 类型校验;
  • 枚举值校验;
  • 路径合法性校验;
  • 长度限制;
  • 敏感字段限制。

5. 上下文长度控制

建议:

  • 保留系统约束、任务目标与当前步骤;
  • 对历史工具结果进行摘要;
  • 对大文件进行分段检索;
  • 避免无关内容占用上下文。

6. 输出格式约束

如果下游系统需要结构化结果,应要求模型输出固定结构。

例如:

  1. {
  2. "status": "completed",
  3. "summary": "...",
  4. "steps": [],
  5. "risks": [],
  6. "next_action": null
  7. }

输出后仍需进行格式校验,不能默认模型一定输出合法结构。

7. 重试策略

对于可重试错误,应设置有限重试。

建议:

  • 仅对超时、临时网络错误等可恢复错误重试;
  • 参数错误不应盲目重试;
  • 权限错误不应重试;
  • 重试次数应记录并限制。

八、示例说明:一个通用 Agent 伪代码流程

下面是一个与具体平台无关的伪代码示例,用于说明 Agent 的执行逻辑。

  1. function run_agent(task):
  2. state = init_state(task)
  3. tools = load_allowed_tools(task)
  4. policy = load_policy(task)
  5. for step in range(max_steps):
  6. context = build_context(
  7. goal = state.goal,
  8. history = summarize_recent(state.history),
  9. tools = tools,
  10. policy = policy
  11. )
  12. action = model.decide(context)
  13. if action.type == "final_answer":
  14. if validate_output(action.result):
  15. return action.result
  16. else:
  17. state.add_error("invalid_output")
  18. continue
  19. if action.type == "tool_call":
  20. tool = find_tool(action.tool_name)
  21. if tool is None:
  22. state.add_error("tool_not_found")
  23. continue
  24. if not policy.allows(tool):
  25. state.add_error("tool_not_allowed")
  26. continue
  27. if not validate_parameters(action.parameters, tool.schema):
  28. state.add_error("invalid_parameters")
  29. continue
  30. if tool.risk == "high":
  31. if not policy.confirm_required():
  32. return request_confirmation(tool, action.parameters)
  33. result = execute_with_timeout(
  34. tool,
  35. action.parameters,
  36. timeout = tool.timeout,
  37. retry = policy.retry_limit
  38. )
  39. state.add_history({
  40. "tool": tool.name,
  41. "parameters_summary": summarize(action.parameters),
  42. "result_summary": summarize(result),
  43. "status": result.status
  44. })
  45. if result.status == "error":
  46. state.add_error(result.error)
  47. continue
  48. else:
  49. state.add_error("unknown_action_type")
  50. return fallback_result(state)

这个流程的重点不是代码细节,而是体现 Agent 的闭环:

  1. 观察当前状态
  2. → 模型生成下一步动作
  3. → 系统校验动作
  4. → 执行工具
  5. → 返回结果
  6. → 更新状态
  7. → 继续推理

九、结果验证:如何判断 Agent 是否成功?

Agent 的验证不能只看“模型是否回答了”,而要看“任务是否完成、结果是否可信、过程是否可控”。

1. 功能验证

检查任务是否完成:

  • 是否正确读取输入;
  • 是否调用必要工具;
  • 是否生成预期输出;
  • 是否满足格式要求;
  • 是否达到成功标准。

2. 边界验证

测试异常场景:

  • 文件不存在;
  • 文件内容为空;
  • 工具调用超时;
  • 工具参数缺失;
  • 权限不足;
  • 网络失败;
  • 模型输出非法格式;
  • 模型试图调用未授权工具。

边界验证比正常路径更重要,因为 Agent 的风险通常出现在异常路径中。

3. 稳定性验证

重复运行同一任务,观察:

  • 结果是否一致;
  • 是否会陷入循环;
  • 是否频繁调用不必要工具;
  • 是否会生成不稳定输出;
  • 是否在相同输入下出现大幅偏差。

4. 安全验证

重点检查:

  • 是否绕过权限;
  • 是否访问敏感资源;
  • 是否执行危险命令;
  • 是否泄露敏感信息;
  • 是否可被恶意提示注入影响。

例如,当用户输入包含“忽略之前所有限制”时,Agent 是否仍遵守系统 Policy。

5. 成本验证

记录每次任务的:

  • 模型调用次数;
  • 工具调用次数;
  • 上下文长度;
  • 执行时长;
  • 失败重试次数。

如果成本明显过高,应优先优化上下文、工具数量与执行循环。


十、常见问题与排查思路

1. Agent 不调用工具,只生成文本

可能原因:

  • 工具描述不清晰;
  • 模型不知道工具可用;
  • 提示词没有明确行动要求;
  • 任务目标过于模糊;
  • 上下文缺少当前状态。

排查思路:

  • 检查工具是否已注册;
  • 检查工具描述是否明确;
  • 检查上下文是否包含可用工具;
  • 要求模型先输出下一步行动;
  • 使用结构化输出格式约束模型。

2. Agent 频繁调用错误工具

可能原因:

  • 工具职责重叠;
  • 工具描述相似;
  • 参数设计不合理;
  • 缺少工具使用优先级。

排查思路:

  • 合并或拆分相似工具;
  • 明确每个工具的适用场景;
  • 增加工具选择约束;
  • 在上下文中限制可选工具数量。

3. Agent 陷入循环

可能原因:

  • 没有停止条件;
  • 失败结果未正确反馈;
  • 模型持续尝试无效操作;
  • 步数上限过高;
  • 工具结果格式不稳定。

排查思路:

  • 增加最大步数限制;
  • 对重复动作进行检测;
  • 明确失败后的处理策略;
  • 要求模型在失败两次后总结原因;
  • 校验工具返回结果格式。

4. 上下文过长导致效果下降

可能原因:

  • 历史信息全部保留;
  • 工具返回结果过大;
  • 检索内容未过滤;
  • 文件内容未摘要。

排查思路:

  • 只保留最近必要信息;
  • 对长文本进行摘要;
  • 使用检索而不是全量塞入;
  • 对工具结果进行压缩;
  • 区分长期状态与短期状态。

5. 模型生成非法工具参数

可能原因:

  • 参数说明不充分;
  • 缺少示例;
  • 参数类型复杂;
  • 没有校验机制。

排查思路:

  • 提供参数示例;
  • 使用清晰字段名;
  • 减少嵌套结构;
  • 增加参数校验;
  • 校验失败时返回明确错误信息。

6. 高风险操作被执行

可能原因:

  • Policy 未生效;
  • 工具风险等级未标记;
  • 确认机制缺失;
  • 权限控制粒度太粗。

排查思路:

  • 建立工具风险分级;
  • 对高风险操作强制确认;
  • 在执行前校验权限;
  • 对关键操作记录审计日志;
  • 默认采用最小权限策略。

十一、优化建议:如何提升 Agent 质量?

1. 性能优化

可以考虑:

  • 对重复查询结果做缓存;
  • 对独立工具调用进行并行处理;
  • 对大文件进行分段处理;
  • 对历史上下文进行摘要;
  • 对简单任务使用更轻量的模型路由策略;
  • 减少无效模型调用。

2. 安全优化

建议:

  • 工具执行放在隔离环境;
  • 对输入输出进行敏感信息检测;
  • 对命令执行、文件写入、删除操作设置审批;
  • 禁止 Agent 访问未授权资源;
  • 对提示注入风险进行专项测试;
  • 记录完整审计日志。

3. 稳定性优化

建议:

  • 对工具调用设置超时;
  • 对临时错误进行有限重试;
  • 对失败步骤进行降级处理;
  • 为关键任务增加检查点;
  • 保存中间状态,避免任务中断后全部丢失;
  • 对长时间任务设置心跳或进度反馈。

4. 成本优化

建议:

  • 控制上下文长度;
  • 减少不必要工具调用;
  • 对工具返回结果做压缩;
  • 对常见任务建立模板化 Skill;
  • 对简单任务避免复杂 Agent 流程;
  • 统计每个任务的资源消耗。

5. 可维护性优化

建议:

  • 工具定义版本化;
  • 提示词与策略版本化;
  • Skill 文档化;
  • 日志结构化;
  • 测试集固定化;
  • 对每次变更进行回归测试。

Agent 是一个持续演进的系统。
如果没有测试集与日志,很难判断一次调整是优化还是退化。


十二、进阶理解:Agent 与普通对话模型的区别

普通对话模型通常是“一问一答”:

  1. 用户输入
  2. → 模型输出
  3. → 结束

而 Agent 是目标驱动闭环:

  1. 用户目标
  2. → 模型理解
  3. → 规划步骤
  4. → 调用工具
  5. → 获取结果
  6. → 判断状态
  7. → 继续执行
  8. → 完成任务
  9. → 输出结果

两者的关键差异在于:

  • 普通模型关注单次回答;
  • Agent 关注任务完成;
  • 普通模型输出文本即可结束;
  • Agent 需要执行、反馈与状态管理;
  • 普通模型不需要权限与工具治理;
  • Agent 必须考虑安全、权限、审计与失败恢复。

因此,设计 Agent 时不能只关注提示词,而要关注完整系统设计。


十三、总结:建立 AI Agent 的工程化认知

AI Agent 不是一个单一模型,也不是一段提示词,而是一套围绕目标完成任务的系统工程。

本教程的核心结论可以概括为:

  1. Model 是推理核心,但不是 Agent 全部;
  2. Tool 是执行单元,必须职责清晰、权限可控;
  3. Skill 是能力封装,适合复用常见任务流程;
  4. Harness 是运行框架,负责执行循环、状态管理与反馈;
  5. Scaffolding 决定思考结构,让 Agent 更有条理;
  6. Context Engineering 决定输入质量,避免信息过载;
  7. Policy 决定行为边界,保障安全与可控;
  8. 验证与排查必须覆盖正常路径和异常路径;
  9. Agent 优化应从性能、安全、稳定性、成本与可维护性综合考虑。

如果你要从零开始实践,可以按以下顺序推进:

  1. 定义任务目标
  2. → 设计工具清单
  3. → 搭建执行循环
  4. → 配置上下文与策略
  5. → 验证正常流程
  6. → 测试异常场景
  7. → 增加日志与监控
  8. → 持续优化

这样搭建出的 Agent,才更容易从演示原型走向可维护、可验证、可扩展的实际系统。