Skip to content

第 31 章 · 综合实战:五件套打通完整工作流

本章目标:把全课程的五件套——提示工程、MCP、Skills、AGENTS.md、Loop Engineering——串成一条完整的生产级工作流,以"每日代码审查循环"为例完成端到端落地,并画出各层职责边界。

24.1 五件套在链路中的位置

回顾整门课程:我们不是学了五个孤立工具,而是一个智能体系统的五个层次。它们自上而下的协作关系是:

text
┌─ 提示工程(01–09 章)────────────────────────────┐
│   写好每一步指令:Few-shot 给范例、CoT 做推理、      │
│   ReAct 边想边做 —— 这是所有环节的"语言层"          │
├─ MCP(10–15 章)────────────────────────────────┤
│   给智能体接上真实世界:GitHub / CI / 数据库等       │
│   工具通过标准协议接入 —— 这是"能力接入层"           │
├─ Skills(16–18 章)─────────────────────────────┤
│   把可复用的作业流程封装成 SKILL.md 能力包,          │
│   渐进披露按需加载 —— 这是"流程封装层"               │
├─ AGENTS.md(23 章)──────────────────────────────┤
│   固化项目上下文与规矩,常驻每个会话 —— "项目约定层"   │
├─ Loop Engineering(19–22 章)────────────────────┤
│   调度、状态、预算、人审门禁,让上面的一切            │
│   持续自主运转 —— 这是"运行与治理层"                 │
└─────────────────────────────────────────────────┘

一句话串起来:提示决定单步质量,MCP 决定能做什么,Skills 决定怎么做才稳定,AGENTS.md 决定在哪做守什么规矩,Loop 决定何时做和做多久

24.2 实战目标:每日代码审查循环

我们要落地 loop-engineering 七大模式中最经典的 Daily Triage(每日分诊) 变体——每天早上自动审查昨天的提交与 PR,产出优先级清单,风险项交人工把关。

第一步:用 AGENTS.md 固化项目约定

这是循环每次运行的"地基",智能体每次启动都会读到:

markdown
<!-- AGENTS.md -->
# 项目约定

## 构建与测试
- 安装依赖:`pip install -e ".[dev]"`
- 运行测试:`pytest -x -q`(必须全绿才算完成)
- 类型检查:`mypy src/`

## 代码风格
- 遵循 PEP 8;函数必须有类型注解与 docstring
- 禁止直接修改 migrations/ 目录下已应用的迁移文件

## 安全红线
- 不要移动或重命名 .github/workflows/ 下的文件
- 凭据一律走环境变量,禁止硬编码

第二步:把审查标准封装成 Skill

审查规则会越来越长,放 AGENTS.md 会撑爆常驻上下文——按渐进披露原则封装为技能:

text
skills/review-checklist/
├── SKILL.md
└── references/
    └── severity-rubric.md   # 严重程度分级细则,按需加载
markdown
<!-- skills/review-checklist/SKILL.md -->
---
name: review-checklist
description: 按团队标准审查提交与 PR:检查测试覆盖、错误处理、安全隐患并输出严重程度分级。当用户要求 code review 或审查变更时使用。
---

# Code Review Checklist

## 步骤

1.`git log``gh pr list` 收集待审查变更;
2. 对每个变更逐项检查:
   - 是否附带测试;错误路径是否处理;是否有硬编码凭据;
3. 按 references/severity-rubric.md 分级:blocker / major / minor;
4. 以 Markdown 表格输出,blocker 置顶。

## 规则

- 只报告问题,不要顺手修复(修复由后续 L2 循环负责)。
- 不确定是否问题时,标记为 needs-human 而不是猜测。

注意第 6 章学的 ReAct 思想就藏在步骤里:先收集(行动)→ 再判断(推理)→ 再输出,而不是让模型一口气凭空生成。

第三步:用 MCP 接上 GitHub 与 CI

智能体需要读 PR 和 CI 状态的真实数据。第 13 章写过 MCP Server,这里直接复用社区现成的:

json
// .pi/agent/settings.json 或 Claude Code 的 mcpServers 配置
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": { "GITHUB_TOKEN": "<从环境变量注入>" }
    }
  }
}

这样 review-checklist 技能里的 gh pr list 之外,模型还能通过 MCP 工具直接查询 PR 详情、CI 结果、代码差异——协议层保证了这些工具对所有支持 MCP 的客户端通用

第四步:用提示工程打磨关键节点

循环里每一步的提示都应用前九章的技术:

python
# 分诊环节使用 Few-shot + 结构化输出约束
TRIAGE_PROMPT = """你是值班审查员。参考以下历史分级示例:

示例1:修复登录超时的补丁未带测试 → major(核心路径缺测试)
示例2:README 错别字 → minor
示例3:删除了输入校验 → blocker(安全回退)

现在请对以下变更分级,只输出 JSON 数组,
每项包含 pr_number, severity(=blocker/major/minor), reason:
{changes}
"""

Few-shot 示例锚定分级尺度,输出格式约束能被程序解析——这正是第 3 章第 5 章的组合应用。

第五步:用 Loop Engineering 让它持续运转

最后套上循环的外壳——状态文件 + 调度 + 人审门禁:

markdown
<!-- STATE.md:循环的记忆脊柱,每次运行后更新 -->
# Loop State — review-loop

Last run: 2026-08-22 08:00 UTC

## High Priority (等待人工)
- [ ] PR #1241 — 删除了输入校验 (blocker)
  Loop action: 已生成审查意见,等待维护者确认

## Watch List
- PR #1238 已开启 4 天无活动

## Recent Noise (本轮忽略)
- Dependabot 依赖升级 PR(走独立自动化)
bash
# 每天早上 8 点调度(L1 报告模式起步)
# GitHub Actions cron: 0 8 * * 1-5
npx @cobusgreyling/loop init . --pattern daily-triage --tool claude
npx @cobusgreyling/loop doctor .   # 健康检查:audit + 同步 → top 3 行动建议

按照第 21 章的节奏推进:第一周 L1 只报告不自动修复 → 稳定后升 L2 允许起草小修复 → 经得起考验再考虑 L3 无人值守

24.3 各层职责边界速查表

回答的问题变更频率失效症状
提示工程单步怎么让模型做对每次迭代都可能调输出不稳定、格式跑偏
MCP智能体能触达什么数据与动作工具集变化时智能体"看不见"PR/CI
Skills标准流程怎么沉淀复用流程演进时每次做法不一致
AGENTS.md这个项目的规矩是什么项目约定变化时智能体违反团队规范
Loop何时做、做多久、谁兜底运行策略调整时要么不动要么失控烧钱

排查口诀:做错了查提示,做不到查 MCP,做得乱查 Skill,不守规矩查 AGENTS.md,该动不动或停不下来查 Loop。

24.4 常见组合反模式

  1. 什么都塞进 AGENTS.md:常驻上下文被几百行规则淹没,模型反而抓不住重点——长流程应下沉为 Skill;
  2. 跳过 L1 直接 L3:没有报告期验证就无人值守,等于把生产仓库交给没人监督的实习生;
  3. 工具全靠裸拼 prompt:不用 MCP,在提示里粘贴 API 文档让模型猜调用方式——脆弱且浪费 token;
  4. STATE.md 无人维护:状态过期后循环基于错误记忆决策,比没有状态更危险(loop-sync 类工具就是防这个的);
  5. 没有 human gate 的写操作:审查类循环可以只报告,但任何自动合并/部署动作必须有门禁与白名单(denylist / auto-merge allowlist)。

24.5 本章小结与后续路线

这门课带你打通了智能体系统的完整纵深:

  • 01–09 章:掌握 Few-shot、CoT、ReAct、ToT 等提示技术,能防御提示注入;
  • 10–15 章:理解并动手实现了 MCP Server,掌握了 Tools/Resources/Prompts 三大原语;
  • 16–18 章:会用 Agent Skills 标准封装可复用能力并做团队治理;
  • 19–22 章:理解循环的解剖结构与五大积木,能给项目做 Loop Ready 评估;
  • 23–24 章:用 AGENTS.md 固化项目约定,并把五件套组合成持续运转的工作流。

接下来建议在本站继续深造:

方向课程关系
框架造智能体Agno用工业框架实现本课的手工循环:工具、记忆、Workflow 一应俱全
多智能体协作CrewAI把单个循环扩展为角色分工的团队
定制你的 harnessPi本课 Skills/AGENTS.md 思想的终端实战版,还能写 TS 扩展

🧪 随堂测验

点击你认为正确的选项。答错时会展示正确答案与原因解析。

1. 在五件套架构中,"智能体看不到 CI 失败结果"最应该优先排查哪一层?

2. 为什么审查规则清单要做成 Skill 而不是写进 AGENTS.md?

3. 关于 Daily Triage 循环的上线路径,正确的是?

4. 发现循环连续三天基于过期的 STATE.md 做决策,这属于哪一层的问题?

🛠️ 动手实践

下一章:课程总结与学习路线