同步笔记

This commit is contained in:
Build Bot
2026-05-25 01:12:11 +08:00
parent f7310caea0
commit d0d19fefbb
25 changed files with 55117 additions and 1319 deletions

View File

@@ -1,13 +0,0 @@
# Structured Output for Beginners (Part 3)
**URL:** https://pocketflow.substack.com/p/structured-output-for-beginners-3
**Source:** PocketFlow Substack newsletter
**Saved:** 2026-05-12
> ⚠️ 笔记无法直接抓取正文内容Substack 从当前环境不可访问)
## 关于该文章
这是 PocketFlow 的 "Structured Output for Beginners" 系列的第三部分。PocketFlow 是一个轻量级 AI 工作流框架,该系列文章主要讲解如何利用结构化输出(如 JSON Schema、Pydantic 模型等)来约束 LLM 输出格式,实现更可靠的 AI 应用。
请手动查看原文获取完整内容。

1743
InBox/640.svg Normal file

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 121 KiB

View File

@@ -1,215 +0,0 @@
# AutoHarness 深度解读
> 来源https://zhuanlan.zhihu.com/p/2016839356833341880
> 收藏时间2026-03-25
## 一句话总结
用小模型Gemini-2.5-Flash自动写一段"规则检查代码"包裹在 LLM 外面,让它不再犯"非法操作"的低级错误,结果小模型+代码 > 大模型裸跑。
---
## 这篇论文到底在解决什么问题?
### LLM 做 Agent 时的尴尬现实
你可能已经知道,现在很多人在用 LLM 做 agent——让模型去完成一些需要"行动"的任务,而不是简单地回答问题。比如让 LLM 下棋、玩游戏、操控机器人等。
**问题来了LLM 经常做出"非法操作"。**
论文举了一个非常生动的例子:在 Kaggle GameArena 的国际象棋比赛中Gemini-2.5-Flash 78% 的失败不是因为下棋策略差,而是因为走了不符合规则的棋。比如让马走直线、让兵倒着走之类的。
这就好比你请了一个非常聪明的人来帮你下棋,他对棋局分析得头头是道,但就是经常把棋子摆到不合法的位置上。
### 为什么会这样?
LLM 本质上是一个文本生成模型。它"知道"国际象棋的规则(因为训练数据里有大量棋谱),但它没有一个硬编码的规则引擎来确保输出的每一步都合法。它的"知道"是概率性的、模糊的,不是精确的。
### 现有解决方案及其问题
| 方案 | 怎么做 | 问题 |
|------|--------|------|
| Fine-tuning | 用大量合法游戏轨迹去微调模型 | 成本极高;可能降低模型在其他任务上的能力 |
| 手写 Harness | 人工为每个游戏写一个规则检查器 | 费时费力,每换一个游戏就要重写 |
**这篇论文的创新点是:让 LLM 自己写这个规则检查器。**
---
## 核心概念:什么是 "Harness"
### Harness 的直觉理解
"Harness" 这个词在英文里是"挽具/马具"的意思用来控制和约束马的行为方向。在这篇论文里Harness 就是包裹在 LLM 外面的一层"安全壳",确保 LLM 输出的动作是合法的。
用工程的话说,这就是一个 wrapper / middleware / interceptor
```
传统做法:
用户请求 → LLM → 输出动作(可能非法)→ 环境报错
加了 Harness 之后:
用户请求 → LLM → Harness检查 → 合法? → 执行
↓ 不合法
告诉LLM"这步不行" → LLM重新生成 → 再检查...
```
### 三种 Harness 变体
论文提出了三种不同"约束力度"的 harness
#### ① Harness-as-Action-Verifier动作验证器— 论文主要聚焦的方案
```python
while True:
action = LLM.generate(observation) # LLM 提出一个动作
if code_harness.is_legal_action(obs, action): # 代码检查是否合法
break # 合法就执行
else:
# 不合法,告诉 LLM 这步不行,让它重新想
observation += f"\n警告:{action} 是非法操作,请重新选择"
return action
```
类比:就像你写代码时 IDE 的实时语法检查——你写了不合法的代码,红线提示你改。
#### ② Harness-as-Action-Filter动作过滤器
```python
legal_actions = code_harness.propose_action(obs) # 代码先列出所有合法动作
best_action = LLM.rank(legal_actions) # LLM 从中选最好的
return best_action
```
类比:就像下拉菜单——用户只能从合法选项中选,不可能输入非法值。
#### ③ Harness-as-Policy代码即策略— 最激进的方案
```python
action = code_harness.propose_action(obs) # 完全由代码决定动作
return action # 根本不需要 LLM
```
类比:你直接写了一个规则引擎/算法来玩游戏LLM 只在"开发阶段"用来写这个算法。运行时零 LLM 调用,零成本。
---
## 核心方法:怎么让 LLM 自动写出 Harness
这是论文最核心的技术贡献。如果你熟悉 GRPO你可以把这个过程理解为用环境反馈来优化代码而不是优化模型权重。
### 整体流程
```
1. 初始化LLM 写一版 harness 代码propose_action + is_legal_action
2. 测试:用这个代码在游戏环境里跑 rollout
3. 评估:记录哪些动作被判为非法,收集错误信息
4. 反馈:把错误信息喂给 LLMCritic 模块整理错误)
5. 优化LLM 基于错误反馈生成改进版代码Refiner 模块)
6. 重复 2-5直到合法率达到 100% 或超时
```
### 和 GRPO 的对比
| 维度 | GRPO | AutoHarness |
|------|------|-------------|
| 优化的对象 | 模型权重 θ | 代码文本(程序) |
| 搜索空间 | 参数空间(连续) | 程序空间(离散) |
| 反馈信号 | reward标量 | 执行反馈(错误日志+reward |
| 优化方法 | 梯度下降 | LLM 当"突变算子"改代码 |
| 探索策略 | 采样多个 response 对比 | Thompson sampling 做 tree search |
| 类比 | 调参让模型更好 | 让 AI 写更好的代码 |
**关键区别**GRPO 改的是模型内部的权重AutoHarness 改的是模型外部的代码。一个改"大脑",一个改"工具"。
### Tree Search + Thompson Sampling
#### 为什么要用 Tree Search
简单的迭代优化(写代码 → 测试 → 改代码 → 测试…)有个问题:容易陷入局部最优。比如 LLM 沿着一个思路改了 5 版代码,发现这个方向走不通了,但已经回不去了。
Tree search 的思路是:同时维护多个版本的代码,像一棵树一样分叉发展。
```
初始代码 v0
/ \
v1a v1b ← 两个不同的改进方向
/ \ |
v2a v2b v2c ← 继续分叉
|
v3a ← 这个方向成功了合法率100%
```
#### Thompson Sampling 是什么?
你面对这棵树上的多个节点,每次迭代应该选哪个节点来继续优化?这就是经典的 exploration-exploitation探索-利用)问题:
- **利用Exploitation**:选当前表现最好的代码版本继续改进
- **探索Exploration**:试试那些还没被充分优化的代码版本,也许潜力更大
Thompson sampling 是一种概率性的选择策略:
```
对每个节点:
1. 根据它历史的"合法率"数据建一个概率分布Beta 分布)
2. 从这个分布中随机采样一个值
3. 选采样值最高的节点来优化
效果:表现好的节点被选中的概率更高(利用),
但表现差的节点也有机会被选中(探索)
```
工程类比:这和你做 A/B testing 时的 Multi-Armed Bandit 问题几乎一模一样。Thompson sampling 就是一种 bandit 算法。
### Critic 和 Refiner 的分工
**Critic批评者**
- 输入rollout 中失败的步骤(最多 5 个)
- 工作:整理和归纳各种错误类型
- 输出:结构化的错误摘要
- 类比Code Review 时给你提 bug 的同事
**Refiner优化者**
- 输入:当前代码 + Critic 的错误摘要
- 工作:基于反馈生成改进版代码
- 输出:新版本的 harness 代码
- 类比:你根据 code review 意见改代码
一个关键细节:如果 `is_legal_action()` 返回 True 但环境说动作非法(漏判),则两个函数都要改;如果 `is_legal_action()` 返回 False 且动作确实非法(检查器工作正常,只是 `propose_action` 提出了错误动作),则只改 `propose_action()`。这个区分很重要,避免了"改了不该改的代码"。
---
## 实验结果解读
### 训练效率:多快能学会?
- 平均 **14.5 次迭代**就能学会(即 LLM 改代码 14.5 次)
- **19/32 个游戏**不到 10 次就搞定了
- 最难学的游戏GermanWhist43次、Chess64次、Othello62次
直觉理解:简单游戏(如猜数字、骰子)规则简单,几次就能写对检查器;复杂游戏(如国际象棋)规则多样(王车易位、吃过路兵等),需要更多轮迭代。
最终结果:**全部 145 个游戏都达到了 100% 合法动作率。**
### 双人游戏:小模型+Harness vs 大模型
| 对阵 | 我们的方法胜率 | 对手胜率 |
|------|--------------|----------|
| Flash+Harness vs Gemini-2.5-Pro | **56.3%** | 38.2% |
| Flash+Harness vs Flash原始 | **64.8%** | — |
这意味着什么?**一个小模型Flash配上自动生成的规则检查代码可以打败一个大几倍的模型Pro。**
---
## 核心启示
1. **"代码即策略"可能是 LLM Agent 的终局形态** — 让 LLM 写代码,然后运行时零 LLM 调用
2. **小模型+好代码 > 大模型裸跑** — 这打破了"模型越大越好"的迷信
3. **Program Synthesis + RL 的结合** — 这可能是下一代 AI 系统的核心范式
---
## 标签
#论文解读 #AutoHarness #LLM #Agent #ProgramSynthesis #GRPO #强化学习

View File

@@ -1,91 +0,0 @@
# CLI-SwitchAgent 调用 Claude Code / Codex 的正确姿势
**来源:** [微信公众号 - WilleAi笔记](https://mp.weixin.qq.com/s/_lFBObJClMx74DuJVegAaw)
**作者:** 上心12138
**日期:** 2026年5月13日 02:05
**标签:** #cli-switch #ClaudeCode #Codex #Agent #AI #开发工具
---
## 从工具箱到手术刀
三个月前作者发过一篇文章介绍 cli-switch定位是"Agent 的 CLI 工具箱"——支持多个编码 Agent能调很多模型。跑了一段时间后发现做得太多反而没有一个做得够好。
Claude Code 和 Codex 在编码场景的领先优势越来越明显,其他工具逐渐边缘化。所以整个项目重构了。
**v1.0.0** 换成了 TypeScript / Node.jsnpm 安装,聚焦只做一件事:
> **让 Agent 正确调用 Claude Code 和 Codex并知道选对应的什么模型。**
### 重构带来的关键变化
- **更干净**:砍掉了不必要的 Agent 支持,专注 Claude Code + Codex
- **环境隔离**:每次调用起独立子进程,不碰全局配置
- **策略引擎**4 种执行策略——single单步、write_review写完审查、write_test_fix写完跑测试、不过就修、high_quality全程 premium 模型)
- **Skill 系统**:给 Agent 操作手册,自动识别 8 种能力(写代码、代码审查、重构、修 bug、分析、写测试、跑测试、解释代码
---
## 两个人的电脑(核心痛点)
Claude Code 只有一份全局配置。Agent 没法单独指定模型,只能用全局配的那个。就像两个人共用一台电脑,谁改了设置另一个都受影响。
Codex 也一样。每次调 Codex 要手动设 `OPENAI_API_KEY``OPENAI_BASE_URL`,用完还得改回来。
---
## 一行安装,一个 Key 搞定
```bash
npm install -g cli-switch
```
配一个环境变量:
```bash
export SWITCH_API_KEY=your-gateway-key
export SWITCH_BASE_URL=https://your-relay.example.com/v1
```
Agent 调 Claude Code 时自动注入为 `ANTHROPIC_API_KEY`,调 Codex 时注入为 `OPENAI_API_KEY`。**不碰全局配置**,通过子进程临时环境变量注入,用完即焚。
---
## 使用示例
**调 Claude Code**
```bash
cli-switch run "给 src/auth.ts 补单元测试" --agent claude-code
```
**调 Codex**
```bash
cli-switch run "重构 utils 模块" --agent codex
```
**写完自动跑测试,不过就修(最多循环 5 次):**
```bash
cli-switch run "实现登录功能" --strategy write_test_fix
```
**路由预览,不花 Token**
```bash
cli-switch run "重构 auth 模块" --dry-run
```
---
## 对比表
| | 之前 | 之后 |
|---|---|---|
| 调 Claude Code | 手动设环境变量,担心改全局配置 | 一条命令,自动注入 |
| 调 Codex | 又得手动设一套 OpenAI 的变量 | 同一条命令,换 `--agent codex` |
| Key 管理 | 中转站 Key 要手动塞给每个工具 | 配一次,两个工具都能用 |
| 模型切换 | 改全局配置,影响自己正在用的 | Agent 用自己的,互不影响 |
| 执行隔离 | 直接在项目里改,改坏了就麻烦 | worktree 或临时副本,随便折腾 |
---
## 与 Hermes Agent 的关联
这个工具直接解决了 Hermes Agent以及类似 AI Agent在调用 Claude Code / Codex 时的**环境变量冲突**和**配置隔离**问题。Hermes 的 `delegate_task` 工具配合 `acp_command` 参数可以调用 Claude Code 和 Codex而 cli-switch 进一步简化了 Key 注入和模型选择。

View File

@@ -1,29 +0,0 @@
# CLIProxyAPI
**GitHub**: https://github.com/router-for-me/CLIProxyAPI
**添加时间**: 2026-03-24
**提醒时间**: 2026-03-25 10:00
**标签**: #代理 #CLI #工具
---
## 项目简介
(待补充 - 明天落实时填写)
## 主要功能
(待补充)
## 安装使用
(待补充)
## 备注
- 用户要求:无风险的情况下落实
- 提醒已设置明天3月25日10:00
---
**原始链接**: https://github.com/router-for-me/CLIProxyAPI

View File

@@ -1,53 +0,0 @@
# Claude Code 2.1.141 重磅发布61项更新细节体验再次升级
> 来源:[微信公众平台](https://mp.weixin.qq.com/s/73PuGdfvSt7j2l-tTigd_g)
> 作者:晓明兄
> 日期2026年5月15日 08:04
## 本次更新三大亮点
### 1. Hook 通知能力大幅提升(最实用!)
- 新增 `terminalSequence` 字段到 Hook JSON 输出
- 即使没有控制终端non-TTYHook 也能直接发出:
- 桌面通知
- 窗口标题变更
- 终端铃声
- 长任务跑完、重要事件发生时Claude 终于能"主动叫你"
- 社区用户直呼这是 "sleeper hit"(潜伏杀手级改动),让 Agent 感觉更像真实同事
### 2. Rewind 菜单新增 "Summarize up to here"
- 长会话上下文爆炸时,不用手动重启丢失历史
- 选中位置后一键压缩早期上下文,保留最近对话
- 完美解决 token 限制痛点,同时不丢失"为什么之前方案失败"的重要信息
### 3. Agent View 与后台任务更稳定
- `claude agents --cwd <path>`:支持按目录过滤会话列表
- 后台 Agent 完成工作但仍有 shell 时,自动移到 Completed 状态
- 空闲后台会话 5 分钟后自动清理
- 权限模式、模型切换等并发问题得到大量修复
## 其他重要新增与改进
**新增功能:**
- `CLAUDE_CODE_PLUGIN_PREFER_HTTPS`:无 SSH Key 环境也能轻松安装 GitHub Plugin
- `ANTHROPIC_WORKSPACE_ID`:支持 Workload Identity Federation精确作用域
- `CLAUDE_CODE_VOICE_FORWARD_INTERIMS_TYPED` 等语音相关环境变量
**体验与修复亮点:**
- 长思考 Spinner 10 秒后变 amber 色,提醒你 Claude 还在努力
- 大量 Windows、插件、MCP、权限对话框、markdown 表格等修复
- Auto Mode 权限提示更清晰,说明是由哪个 rule 触发
- Prompt tokens 优化tools 占比从 43.5% 提升至 47.3%
## 开发者真实声音
- "一个小改动,却让长跑 Agent 真正能‘喊’人。"
- "Rewind 压缩功能直接解决上下文爆炸问题,不用再手动重启丢失历史。"
结合之前的 Agent View + /goalClaude Code 正在成为一套真正可管、可控、可长时间运行的 AI 工程体系。
## 写在最后
Claude Code 的迭代节奏越来越快。从 Agent View 的全局视野,到 /goal 的目标驱动,再到这次的 Hook 通知和上下文压缩,它正在一步步把"把任务扔给 AI"从理想变成稳定可靠的生产力工具。
---
#ClaudeCode #AI编程 #开发者工具 #AgenticAI

View File

@@ -1,108 +0,0 @@
# Cursor 开源团队工作流 Team-kit
> 来源:[微信公众平台](https://mp.weixin.qq.com/s/YT-yD6LcYJhUm5aTQtCsKQ)
> 作者VibeCoder · Vibe编码
> 时间2026年5月7日 07:56
---
Cursor 官方插件仓库发布了 `cursor-team-kit`v1.1.0),将 Cursor 团队内部的 CI、Code Review、PR、测试、验证、代码清理、周报等工作流打包成可直接安装的插件。
**安装:** `/add-plugin cursor-team-kit`
**内容构成:** 17 Skills + 1 Sub Agent + 2 Rules
特点:不依赖 Linear、Jira、Slack、Notion 等第三方服务,靠 Git、GitHub CLI、本地测试、浏览器自动化、终端 harness 等基础能力工作。
---
## 它是什么
manifest 里写得直白:*Internal workflows used by Cursor developers*。
官方强调:**plug and play without requiring third-party service integrations**。价值不是把 SaaS 接进 IDE而是把团队怎么收尾、验证、review 写成 agent 能读懂的操作手册。
---
## 技术原理
目录结构:
```
cursor-team-kit/
├── .cursor-plugin/plugin.json
├── agents/ci-watcher.md
├── rules/
│ ├── no-inline-imports.mdc
│ └── typescript-exhaustive-switch.mdc
└── skills/
├── loop-on-ci/
├── verify-this/
├── control-cli/
├── control-ui/
├── pr-review-canvas/
└── ...
```
设计哲学Skills 很多Sub Agent 很少。只有一个后台 agent `ci-watcher`(盯 PR checks。其他复杂动作都拆成独立 skill按需触发更像 checklist。
---
## verify-this最有价值的 skill
硬性要求:
1. 把用户 claim 改写为**可证伪命题**
2. 采集 baseline 和 treatment 两组 artifact
3. 相同命令、相同数据、相同环境比较
4. 只允许三种结论:**VERIFIED** | **NOT VERIFIED** | **INCONCLUSIVE**
直击 agent 写代码最大的毛病——太容易凭感觉宣布完成。这个 skill 可迁移到 Claude Code、Codex、OpenCode 等任何本地 coding agent。
---
## control-cli & control-ui执行层
- **control-cli**:给交互式 CLI/TUI 搭可重复 harness用 tmux、PTY、Expect、Node inspector 驱动输入、捕获屏幕、记录 transcript
- **control-ui**:面向 Web/IDE/Electron用 Playwright/CDP 连接真实页面,截图、读 accessibility tree、抓 console/network、做性能和内存分析
说明 Cursor 内部对 agent 的要求已不止读代码和写代码——代码写完后 agent 要真的去操作它。
---
## PR 被当成阅读体验来设计
PR 生命周期工具:
- `new-branch-and-pr`
- `review-and-ship`
- `make-pr-easy-to-review` — 整理 noisy history、改 PR 描述、补风险说明
- `get-pr-comments`
- `pr-review-canvas` — 将 diff 渲染为交互式 HTML 走读页面加伪代码、流程图、review checklist
AI 让代码产出速度变快后review 压力上升,审查代码也要做信息设计。
---
## 两条 Rules 暴露代码品味
只有两条 always-on rules
1. **typescript-exhaustive-switch** — TypeScript union/enum switch 做穷尽处理(`never` 兜底)
2. **no-inline-imports** — import 放文件顶部
共同指向:代码要容易被静态分析,也要容易被人扫读。
---
## workflow-from-chats元技能
从最近对话里提取团队偏好:触发条件、工作步骤、质量标准、停止条件、证据和置信度。判断该写成 skill、rule、workflow doc 还是不落地。
解决长期问题:人会不断纠正 agent 的行为习惯,但这些纠正如果不显式沉淀成 artifact就不会累积为能力。
---
## 总结
- **verify-this** 解决了 agent 自证的问题
- **control-cli/ui** 把 agent 从代码生成推进到操作验证
- **pr-review-canvas** 承认审查代码需要信息设计
- **两条 rules** 是品位种子
- **workflow-from-chats** 解决团队知识沉淀

View File

@@ -1,72 +0,0 @@
# Cursor: 持续改进我们的智能体框架 (Continually Improving Agent Harness)
> 原文: [cursor.com/cn/blog/continually-improving-agent-harness](https://cursor.com/cn/blog/continually-improving-agent-harness)
> 作者: Stefan Heule & Jediah Katz · 2026-04-30
## 核心思想
改进智能体框架 = 愿景驱动 → 提出假设 → 实验验证 → 定量/定性信号迭代。大多数改进不是跃迁式突破,而是执着地叠加一个个小优化。
---
## 1. 上下文窗口的演进
- **早期 (2024末):** 模型自行选择上下文能力弱 → 大量护栏lint/类型错误反馈、改写文件读取请求、限制单轮工具调用数量、预填大量静态上下文(文件夹布局、语义匹配代码片段、用户附件压缩版)
- **现在:** 上述做法大多淡出。保留少量实用静态上下文OS、git 状态、当前/最近查看文件)。转向**动态上下文**——模型在工作过程中按需拉取(过往对话、活跃终端会话、相关工具等)
## 2. 评估框架变更
| 方式 | 说明 |
|------|------|
| **离线评估** | 自有评估套件 + 公开基准 [CursorBench](https://cursorbench.com);快速、标准化、可跨时间对比 |
| **在线 A/B 测试** | 同时部署两个+框架变体,在生产环境真实用户中测试 |
**质量衡量指标:**
- **直接指标:** 延迟、token 效率、工具调用次数、缓存命中率
- **保持率 (Keep Rate):** 智能体生成的代码变更在固定时间后仍保留在代码库中的比例
- **语义满意度分析:** 用 LLM 读取用户对智能体输出的回应——用户进入下个功能=成功信号,用户粘贴堆栈追踪=失败信号
➤ 案例: 尝试用更贵模型做上下文摘要,改善微乎其微,不值得成本。
## 3. 跟踪并修复性能退化
**工具调用错误分类:**
- `InvalidArguments` / `UnexpectedEnvironment` — 模型出错、上下文矛盾
- `ProviderError` — 外部工具服务中断GenerateImage、WebSearch 等)
- `UserAborted` / `Timeout` — 用户中止或超时
**告警策略:**
- 未知错误=缺陷 → 超阈值即告警
- 预期错误 → 异常检测告警(每个工具×每个模型分别计算基线),显著偏离基线时触发
- 自动化工单: 每周运行一个特化智能体,搜索日志找出新增/激增问题,在 Linear 创建或更新工单
➤ 成果: 一次集中冲刺将意外工具调用错误降低一个数量级,所有工具可靠性达 99%+(很多 99.9%)。
## 4. 为不同模型定制框架
- 所有框架抽象不依赖具体模型,但可深度定制
- **工具格式差异:** OpenAI 训练使用 patch 格式编辑文件Anthropic 习惯字符串替换。用错格式会消耗更多 reasoning token 并产生错误
- **提示定制:** OpenAI 遵循指令更字面/精确Claude 更偏直觉,对不精确指令容忍度高
- **Early Access 调优:** 从最接近的现有框架入手 → 离线评估找出易错点 → 团队成员实际使用反馈 → 迭代直到可发布
- **"上下文焦虑"context anxiety:** 一个模型在上下文窗口渐满时拒绝执行任务,通过调整提示缓解
## 5. 支持聊天中途切换模型
- 切换时自动切换到对应模型的框架(不同提示、不同工具接口)
- 添加自定义指令告诉模型它是"中途接手"对话
- 缓存是 provider/model 特定的,切换导致缓存未命中 → 尝试用对话摘要缓解
- 替代方案: 使用**子智能体**(从全新上下文窗口开始),最近支持用户指定模型运行子智能体
## 6. 框架与软件开发的未来
- **多智能体模式**是方向: 一个负责规划、一个负责快速编辑、一个负责调试,各司其职
- **框架是关键:** 知道调度哪个智能体、如何描述任务、如何整合结果——这些编排能力体现在框架中,而非单个智能体身上
---
## 启发
> 与 Hermes Agent 的开发哲学高度一致——持续关注动态上下文、工具可靠性、评估方法论、以及为不同模型优化框架。
---
原文链接: [https://cursor.com/cn/blog/continually-improving-agent-harness](https://cursor.com/cn/blog/continually-improving-agent-harness)

View File

@@ -1,227 +0,0 @@
---
source: 微信公众号
url: https://mp.weixin.qq.com/s/Rao9okjfY7gzsHldjRKdDw
title: Hermes Agent 架构分析
tags: [hermes-agent, architecture, AI-agent]
---
# Hermes Agent 架构分析
## 系统全景
Hermes Agent 是一个**多平台、可扩展的 AI Agent 框架**,核心组件包括:
- **核心 Agent 引擎** — AIAgent 类run_agent.py
- **工具系统与注册中心** — registry 架构
- **网关与多平台适配** — 20+ 平台适配器
- **配置与状态管理** — 双轨配置 + SQLite 会话存储
- **安全模型** — 多层审批 + 纵深防御
---
## 核心 Agent 引擎
### AIAgent 类设计
采用**大类单文件设计**run_agent.py所有核心逻辑汇聚于一个文件中。
**60+ 构造器参数**按语义分区:
- 模型配置
- 工具控制enabled/disabled_toolsets
- 行为控制quiet_mode, save_trajectories
- 上下文标识platform, session_id
- 回调注入clarify, approval, sudo, progress callbacks
这是一种**配置注入Configuration Injection**模式。
### 双接口设计
```python
def chat(self, message: str) -> str:
"""简单接口 — 返回最终响应字符串"""
def run_conversation(self, ...) -> dict:
"""完整接口 — 返回字典"""
```
Facade + Full API 双层设计。
### 核心循环
```
while api_call_count < max_iterations and budget.remaining > 0:
# 1. 预飞检查 — 上下文压缩
# 2. API 调用
# 3. 工具调用分支(支持并行执行)
# 4. 终止条件
```
**关键设计决策:**
| 权衡 | 选择 | 理由 |
|------|------|------|
| 同步 vs 异步 | 同步循环 | 可预测性、调试简单 |
| 迭代控制 | 双重限制 | 线程安全预算管理 |
| 上下文压缩 | 触发式 | 仅在 token 上限时启动 |
### IterationBudget — 线程安全预算管理
使用 threading.Lock 实现,解决子代理委派场景下的预算共享问题。
### 上下文压缩5 阶段管线)
1. **工具输出裁剪** — 截断超长返回值
2. **头部保护** — 锁定系统提示 + 前 N 轮
3. **Token 预算尾部定位** — 从尾部向前累积
4. **结构化摘要** — LLM 摘要被截断的中间部分
5. **工具对消毒** — 确保 tool_use/tool_result 成对出现
**防抖机制**:检测连续多次压缩则触发紧急降级。
### Prompt 缓存策略
Anthropic system_and_3 策略:系统提示 + 最后 3 条消息设置 cache_control 断点。
### 多 API 模式适配
支持 4 种 LLM API 协议OpenAI、Anthropic、Google、OpenRouter内部统一格式后在 API 调用前动态转换。
---
## 工具系统与注册中心
### Registry 架构tools/registry.py
```python
class ToolEntry:
__slots__ = ('name', 'toolset', 'schema', 'handler', 'check_fn',
'requires_env', 'platform_filter', 'is_mcp')
```
**设计亮点:**
- **AST 自动发现** — 扫描 tools/ 目录的 registry.register() 调用,无需手动维护导入列表
- **MCP 影子保护** — MCP 工具同名时优先内置版本
- **__slots__ 优化** — 减少内存开销
### 工具分层6 层)
从底层执行环境到顶层 Agent 循环,每一层单向依赖。
### 工具集定义
_HERMES_CORE_TOOLS 列表,用户通过 enabled/disabled_toolsets 精确控制。
### 工具调用生命周期8 步流程)
LLM → tool_calls → model_tools.handle_function_call() → registry.dispatch() → 审批检查 → handler → JSON result → tool_result message
---
## 网关与多平台适配
### Gateway 架构
异步事件循环20+ 平台适配器并发运行,统一路由到 AIAgent。
### 平台适配器模式Template Method + Strategy
```python
class BasePlatformAdapter(ABC):
# 4 个必须实现的抽象方法
async def send_text(self, chat_id, text): ...
async def send_typing(self, chat_id): ...
async def get_display_name(self, user_id): ...
async def start(self): ...
# 10+ 可选覆盖方法
```
支持 20+ 适配器Telegram、Discord、Slack、WhatsApp、QQ、Signal、HomeAssistant、WeChat元宝等。
### 会话管理
- 双写持久化SQLite+ JSONL向后兼容
- 重置策略idle空闲超时/ daily每日定时
### Agent 缓存LRU
最大 128 个 Agent 实例的资源感知缓存。
---
## 数据流转
### 主流程(键盘 → 屏幕)
CLI 入口 → Agent 循环 → LLM API → 工具执行 → 流式渲染 → 会话持久化
### 工具调用流细节
- **Agent 级拦截**todo_tool、memory_tool 直接处理不进 registry
- **审批流程**:环境豁免 → YOLO 模式 → LLM 智能评估 → 人工审批
---
## 配置与状态管理
### 双轨配置系统
```
~/.hermes/
├── config.yaml # 结构化配置 (YAML)
├── .env # 环境变量 (API keys)
├── skins/ # 自定义皮肤
├── skills/ # 已安装技能
└── sessions/ # 会话数据 (SQLite + FTS5)
```
### 三套配置加载器
- load_cli_config() — CLI 交互模式
- load_config() — 子命令
- 直接 YAML 加载 — Gateway
### SessionDB
SQLite + FTS5 全文搜索WAL 模式读写并发自动迁移Jitter 写重试。
---
## 安全模型
### 多层审批体系
1. 环境检测豁免 → 2. YOLO 模式 → 3. LLM 智能评估 → 4. 人工审批回调
### 危险模式检测30+ 模式)
```python
DANGEROUS_PATTERNS = [
r"rm\s+(-[rf]+\s+)?/", # 文件系统破坏
r"curl.*\|\s*(bash|sh)", # 网络风险
r"sudo\s+", # 权限提升
# ...
]
```
Unicode 规范化防绕过NFKC + 零宽字符移除)。
### 凭证保护
- 环境变量黑名单(工具执行时自动过滤)
- 敏感路径保护(~/.ssh/, ~/.gnupg/ 等)
### SSRF 防护
在平台适配器基类中验证 URL阻止内网/回环地址访问。
### 安全设计哲学
纵深防御Defense in Depth最小特权、分层检查、反绕过、环境隔离、凭证隔离。
---
## 可扩展性体系
### 工具扩展(最核心的扩展机制)
添加新工具仅需 2 个文件 + AST 自动发现。零配置。
### 技能系统Skills
纯文本能力增强(~/.hermes/skills/),通过自然语言描述注入系统提示。
### MCP 生态
Hermes 同时作为 MCP Server 和 MCP Client。
### 皮肤系统
纯数据扩展YAML运行时通过 /skin 命令即时切换。
---
## 设计哲学
### 核心原则
- **实用主义胜于教条主义** — 大文件不如过度拆分
- **回调注入实现界面无关** — 4 个入口共享同一个 AIAgent
- **分层而非分片** — 6 层清晰分层
- **安全作为一等公民** — 深度嵌入架构
- **约定优于配置** — 自动发现、自动加载、自动集成
### 主要权衡
| 权衡 | 选择 | 收益 |
|------|------|------|
| 大文件 vs 小模块 | 大文件 | 核心逻辑内聚 |
| 同步 vs 异步 | 同步 | 可预测性 |
| 单进程 vs 微服务 | 单进程 | 部署简单 |
| AST 发现 vs 显式注册 | 动态发现 | 零配置 |
### 一句话总结
> Hermes 是一个以实用主义为导向、以可扩展性为骨架、以安全性为底线的工业级 AI Agent 框架。

View File

@@ -1,66 +0,0 @@
---
title: Hermes 编排 Agent + Web 可观测性方案
date: 2026-04-29
tags: [Hermes, Agent编排, ttyd, tmux, 可观测性]
---
# Hermes 编排 Agent + Web 可观测性方案
## 背景
Hermes 作为母 Agent 编排不同的子 AgentCodex、Claude Code 等),但全部在后台运行,无法直观看到每个 Agent 的实时输出和进度。需要将后台 tmux session 暴露到 Web 前端观察。
## 方案ttyd + tmux
**ttyd**GitHub 31k+ stars可以把任意终端程序变成 Web 页面,通过 WebSocket 实时推流。
### 架构
```
Hermes (编排大脑)
├─ tmux session codex1 ─── ttyd :8080 ──► http://localhost:8080
├─ tmux session claude1 ─── ttyd :8081 ──► http://localhost:8081
└─ tmux session codex2 ─── ttyd :8082 ──► http://localhost:8082
```
### 使用方式
```bash
# 启动 Agent 的 tmux session
tmux new-session -d -s codex1 -x 140 -y 40
tmux new-session -d -s claude1 -x 140 -y 40
# ttyd 暴露每个 session 到 web
ttyd -p 8080 tmux attach -t codex1 &
ttyd -p 8081 tmux attach -t claude1 &
# 浏览器打开
open http://localhost:8080 # 看 Codex
open http://localhost:8081 # 看 Claude Code
```
### 类似方案
- **Wetty / Gotty** — 与 ttyd 类似
- **LangFuse / AgentOps** — 专业 Agent trace 平台,但偏事后日志分析,非实时终端画面
### 文件握手通信
Agent 之间通过文件交换上下文:
```
/tmp/handoff.json # Codex 输出 → Claude Code 读取
/tmp/instruction.md # Claude Code 重注入指令 → 拉起新 Codex
/tmp/next_prompt.txt # 下一步指令
```
## 关键结论
1. **不要** 让 Agent 之间直接互相调用(失控)
2. **要** 用 Hermes 作为中央编排大脑
3. **用文件作为 Agent 间通信协议**
4. **ttyd 解决实时观察问题**,浏览器多标签同时查看所有 Agent
---
*来源Hermes Agent 对话 (2026-04-29)*

View File

@@ -1,84 +0,0 @@
# OpenSpec + Superpowers workflow orchestratorOpenFlow连接需求与工程的工作流编排器
**来源:** [微信公众号 - 幽人](https://mp.weixin.qq.com/s/8PT7nlj-Jcu8Xa6lwyApYQ)
**作者:** 幽人
**日期:** 2026年5月15日 11:12
**标签:** #OpenFlow #OpenSpec #Superpowers #工作流编排 #AI编码
---
## 核心定位
> OpenSpec + Superpowers workflow orchestrator — bridging requirements specs and engineering execution, eliminating the format gap.
**OpenFlow 是连接需求规格与工程执行的工作流编排器**,消除两者之间的格式鸿沟。它是一个 npm 全局包(`@lininn/openflow`),纯粹作为一个独立的**编排层**,不嵌入 OpenSpec 或 Superpowers 的代码。
GitHub: [lininn/openflow](https://github.com/lininn/openflow)
### 解决的问题
- **需求模糊**:用户说"做一个贪吃蛇游戏"AI 需要自行猜测技术栈、复杂度、边界条件
- **规格缺失**:没有结构化的设计文档,代码写到一半发现需求变了
- **进度不明**:做到哪里了?哪些功能已完成?哪些待验证?
- **验收困难**:如何确认代码实现了设计?设计变更是否同步到代码?
---
## 核心架构
- **技术栈**TypeScript98.6%npm 全局包
- **核心依赖**OpenSpec结构化规格生成+ Superpowers实现规划与执行
- **目录结构**CLI 优先 + 模板驱动 + 平台兼容(.claude/ 技能 + .omc/ 会话存储)
### 双层依赖检测机制
**优雅降级策略** — 不强制依赖 OpenSpec 或 Superpowers
- Init 时检测:检测缺失 → 引导安装,但技能文件仍然生成
- 运行时检测Build 阶段发现缺失时自动降级为手动步骤执行
核心理念:**让工具先能用,再逐步完善。**
---
## 五阶段工作流
| 命令 | 阶段 | 描述 |
|------|------|------|
| `/openflow proposal` | proposal | 轻量需求捕获 — 3-5 个问题快速收敛需求 |
| `/openflow brainstorming` | brainstorming | 深度设计 — 多轮权衡探索 |
| `/openflow spec` | spec | 生成规格 + 自动翻译为 plan-ready.md |
| `/openflow build` | build | 执行实现(调用 Superpowers |
| `/openflow close` | close | 验证一致性 + 归档 |
### Proposal 阶段:需求的起点
用最少的提问3-5 个),把用户脑子里的需求变成可执行的变更描述:
1. **做什么** — 想实现什么功能/变更?
2. **为什么** — 解决什么问题?给谁用的?
3. **成功标准** — 怎样算做完了?验收条件?
4. **边界** — 什么不在范围内?
5. **现有约束** — 技术栈、兼容性、时间上的限制?
输出格式proposal.md
### Spec 阶段:从 proposal 到可执行规格
将 proposal 升级为完整的规格文档包含详细的功能描述、数据结构、API 设计、组件树等。最终产出包括:
- `design.md` — 完整设计文档
- `specs/` 目录 — 规格细节(包含详细的 spec 和 `plan-ready.md`
- `tasks.md` — 任务清单(含依赖关系和验收标准)
### Build 阶段:自动执行实现
关键概念是**任务沙箱**task sandbox
1. 每个 task 从 tasks.md 中被抽取到一个独立的 `.snapshot/` 沙箱
2. 沙箱内包含:任务描述、相关规格、类/方法骨架、依赖说明
3. 为每个 task 生成独立的 contextLLM 上下文隔离,避免信息过载)
### Close 阶段:验证与归档
- `verify` 子命令:对照 tasks.md 验证每个任务的实现状态和格式一致性
- `close` 归档:将 changes 目录中的内容归档到当前项目的 `changes/`
---
## 编排 vs 工具绑定
OpenFlow 与其他方案的区别:
- **不是**将 Cursor/Claude Code/Codex 等工具与工作流深度绑定
- **而是**在每个阶段生成描述性的 prompt 和产出,让各阶段的 AI Agent 可以看懂指令并产出对接产物
- 靠**文件格式**(统一的 markdown 规范)打通各阶段,而不是靠 API 集成

View File

@@ -1,96 +0,0 @@
# AI编程新范式规格驱动编程 OpenSpec 的落地实战
**来源:** [微信公众号 - AI软件产品经理](https://mp.weixin.qq.com/s/5CSEUj1R7q3KhaRBkJE-ZA)
**作者:** melong
**日期:** 2026年4月7日 07:00
**标签:** #OpenSpec #规格驱动编程 #AI编程 #Cursor #落地实战
---
## OpenSpec 简介
> OpenSpec 是一个命令行工具,帮助我们和 AI 助手之间建立规范驱动spec-driven的开发流程强调变更隔离、人类与 AI 的共识和审查闭环,本质上是在构建一种新的"人机协作语言"。
GitHub: [Fission-AI/OpenSpec](https://github.com/Fission-AI/OpenSpec)
### 核心思想
将开发流程拆解为两个清晰的阶段:
1. **明确"要什么"** — 在 `openspec/specs/` 文件夹中定义当前系统的完整规范
2. **管理"怎么改"** — 在 `openspec/changes/` 文件夹中存放所有变更提案
从"边写边改"到"规范先行",非常适合 **1→n 的项目迭代**
### 亮点
- 变更从提案到落地、全流程规范、闭环管理,每一步可溯源、复查与协同
- 规范落地后,后续团队成员查阅 specs 文档即可快速了解业务历史和变更细节
---
## 初始化工作
### 1. 安装 OpenSpec
```bash
npm install -g @fission-ai/openspec@latest
# 需要 Node >= 20.19.0
```
### 2. 项目初始化
```bash
cd your_project
openspec init
```
选择使用的工具Cursor、Claude Code、Codex 等),会在项目根目录下生成对应的 skill 文件夹。
### 3. 填充项目上下文信息
在 Cursor 对话框中输入:
```
Please read openspec/project.md and help me fill it out with details about my project, tech stack, and conventions
```
`project.md` 结构包括Purpose、Tech Stack、Project ConventionsCode Style / Architecture / Testing / Git Workflow、Domain Context、Important Constraints、External Dependencies。
### 4. 生成变更提案
在 Cursor 中使用 `/openspec-propose` 命令:
```
/openspec-propose 需求文档地址为https://mi.feishu.cn/wiki/xxx
```
每次提案生成一个 Change ID`changes/` 下创建目录,包含:
- **proposal.md** — 提案Why / What Changes / Impact
- **design.md** — 技术方案和架构决策
- **tasks.md** — 任务清单(多阶段 checkbox 任务)
- **specs/xxx/spec.md** — 可测试的需求规格
### 5. 审查与验证
- **重新提案**:不满意时可反复迭代,直到符合预期
- **反复迭代**:直接在 tasks.md 上修改,而不是新建提案
---
## 执行落地
### 拆分任务为可用交付walkthrough
- 将 tasks.md 的每个阶段按最细粒度拆分
- 让 AI 搞清楚当前阶段全部任务细节
- 确认前后端各自的任务边界
### 增量编码模式
- 每完成一个 phase`/review``/fix``/test`
- 用自然语言描述期望,比问"有没有bug"更有效
- tips频繁 `/clear` 清空上下文,避免 token 老化
---
## 常见报错与解决
| 报错 | 原因 | 解决 |
|------|------|------|
| `openspec: command not found` | Node 版本不够或全局安装路径问题 | 用 `npx @fission-ai/openspec` 替代,或升级 Node |
| 图片/head 标签被截断 | Cursor 的响应长度限制 | 分阶段执行,或要求 AI 仅输出关键修改部分 |
| 上下文过长导致幻觉 | 长时间未 `/clear` | 每个 phase 完成后 `/clear`,重新加载上下文 |
---
## 总结
> **OpenSpec 的核心价值不在于工具本身,而在于它强制执行的"先想清楚再动手"的工程纪律。** 在 AI 编码能力越来越强的今天,真正的瓶颈已经不是"写不出代码",而是"写不对代码"。OpenSpec 通过规范驱动的方式,把人的判断力放在设计阶段,把 AI 的执行力放在编码阶段,各取所长。

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,739 @@
本⽂是å
³äºŽ AI è¾
åŠ©ç¼–ç çš„å
¨â¾¯å®žæˆ˜æŒ‡å—,基于天猫新品团队的实践经验,从问题本质到解决â½
案,从理论框架到实战案例,系统性地介绍如何让 AI 更好地完成⼤部分需求。
本文分上下两篇,上篇åŒ
含:
1. 现状与问题诊断 - 深⼊剖析 AI â½£ç çš„å››â¼¤ç—›ç‚¹ï¼ˆå†™ä¸å¯¹ã€å†™ä¸å¥½ã€å†™ä¸äº†ã€æ”¹ä¸åŠ¨ï¼‰ï¼Œå¹¶ä»Žé¡¹â½¬çŸ¥è¯†ã€â½¤æˆ·è¾“â¼Šã€ä»»åŠ¡å¤æ‚åº¦ã€â¾ƒæ£€æœºåˆ¶ã€æ¨¡åž‹èƒ½â¼’ç­‰äº”ä¸ªç»´åº¦æä¾›é’ˆå¯¹æ€§è§£æ³•ã€‚
2. â½
法论与优化思路 - 提出"最⼤化复⽤、⾃然语⾔第⼀、⼆⼋定律"ä¸‰â¼¤æ ¸â¼¼æ€æƒ³ï¼Œå¹¶æ²¿ç€"前置准备→开发前→开发中→完成后"的å
¨æµç¨‹ï¼Œç»™å‡ºæ¯ä¸ªèŠ‚ç‚¹çš„å¯è½åœ°ä¼˜åŒ–â¼¿æ®µã€‚
3. 分场景实战案例 - æ ¹æ®éªŒæ”¶æ ‡å‡†å’Œä»£ç è´¨é‡è¦æ±‚ï¼Œå°†éœ€æ±‚åˆ†ä¸º"需求驱动型"和"⼯程主导型"两类,通过⼩⼆端列表⻚和C端复杂业务的完整案例,展示不同场景下的最佳实践。
下篇åŒ
含:
4. 团队建设经验 - 分享新品团队在⼩⼆端(后端å
¨æ ˆåŒ–)和C端(视图分离、知识库建设、⼯作流沉淀)两个â½
向的探索,åŒ
括⼯å
·å»ºè®¾ã€â½‚档沉淀、知识库â½
案等å
·ä½“落地å†
容。
5. 实⽤技巧集锦 - 涵盖 UI 重构、复杂 Prompt 构建、数据转换、多â½
案选优、⽂档⽣成等常â»
应⽤场景,以及严厉语⽓、合理质疑等提升准确度的技巧。
AIâ½£ç çŽ°çŠ¶
▐ 当前AIâ½£ç çš„ä¸»è¦é—®é¢˜
写不对:
AI没有完å
¨æŒ‰ç
§â½¤æˆ·æ„å›¾å®ŒæˆåŠŸèƒ½ï¼Œè½»åˆ™å­˜åœ¨ç¼ºé™·ï¼Œé‡åˆ™â½†æ³•è¿â¾
写不好:
AIäº§å‡ºçš„ä»£ç ä¸ç¬¦åˆè¦æ±‚ï¼ŒåŒ
æ‹¬ä½†ä¸é™äºŽä»£ç è´¨é‡/ä»£ç é£Žæ ¼/实现方案
写不了
项目隐含逻辑太多,文件结构复杂,耦合度高,AI完å
¨æ— 法按预期完成任务
(如一些å†
部SDKå·¥å
·åº“,使用说明都在外部文档,AI æ— æ³•ç›´æŽ¥é€šè¿‡ä»£ç ç†è§£å¦‚ä½•ä½¿ç”¨ï¼Œè‡ªç„¶æ— æ³•å†™å‡ºå¯¹åº”çš„ä½¿ç”¨ä»£ç ï¼‰
改不动
在某些迭代场景中,AIä¸€ç›´æ— æ³•è¾“å‡ºæ­£ç¡®ç»“æžœï¼Œåœ¨é”™è¯¯ä¸­ä¸æ–­å¾ªçŽ¯ï¼Œç”šè‡³è¿˜å¯èƒ½æ”¹åå
¶ä»–部分,此时只能人工介å
¥
而介å
¥åŽï¼Œæƒ³è¦å®Œæˆä¿®æ”¹åˆ™éœ€è¦é¢å¯¹AI短时间å†
ç”Ÿæˆçš„å¤§é‡ä»£ç ï¼Œåè€Œå¯¼è‡´æ•ˆçŽ‡ä¸‹é™ï¼Œä½¿ç”¨è€
完å
¨ä¸§å¤±äº†å¯¹é¡¹ç›®çš„æŠŠæŽ§
▐ å¯¼è‡´é—®é¢˜çš„ä¸»è¦å› ç´ ä¸Žè§£æ³•
1. 项⽬/需求 隐含信息过多(AI不知道)
由于⼤家都是淘å†
ç§æœ‰é¡¹â½¬ï¼Œä»£ç ä¸­ä¸ä»
åŒ
含了专属的业务逻辑,还有来⾃四⾯⼋â½
的SDK⼯å
·åº“ä»£ç ï¼Œâ¾¯å¯¹â½†å¤„èŽ·å–çš„é¡¹â½¬çŸ¥è¯†ï¼Œå³ä½¿æ˜¯Cluade40来了也⽆济于事。
解法:
使⽤有明确声明的NPMåŒ
,或è€
给å
¶æŽ¥â¼ŠArtifact7 等è¾
助⽂档⽣成⼯å
·ï¼›
提供可访问的外部知识库,åŒ
括但不限于 MCP⼯å
· / 项⽬知识库 / 需求⽂档。
2. ⽤户输⼊不精准,å¿
要信息不⾜(没给AI说)
ä»£ç å¼€å‘å°±æ˜¯ä»Žæ¨¡ç³Šçš„éœ€æ±‚è½¬å‘â½†æ­§ä¹‰çš„ä»£ç ï¼Œæ¨¡ç³Šéƒ¨åˆ†åœ¨å®žçŽ°ä¸­å¿
然会被补å
ï¼Œå®žçŽ°ä¸åˆé¢„æœŸçš„â¼€â¼¤åŽŸå› å°±æ˜¯æ¨¡ç³Šéƒ¨åˆ†æ²¡æœ‰æ˜Žç¡®è¯´æ˜Žã€‚
解法:
â½¤æˆ·ä¸»åŠ¨å¢žåŠ è¾“â¼Šå†
容 / è¾
助⼯å
·æå‡è¾“⼊质量
对⼀些常â»
的æƒ
况提供 prompt æ¨¡ç‰ˆï¼Œä½¿â½¤æ—¶æ ¹æ®å®žé™
需求作部分修改;
借⽤⼯å
·è¿›â¾â½¤æˆ·è¾“⼊扩写,以及对å¿
è¦çš„æ¨¡ç³Šéƒ¨åˆ†è¿›â¾æ ‡è®°ä¸Žé˜æ˜Žï¼›
引⼊ Spec Coding â½
案,以详细的⽂档作为AI输⼊;
对⾼频场景做出约定,通过约定来覆盖模糊(如维护⼀份持续更新的AGENT.md)。
意图识别,基于项⽬上下⽂⾃动推测模糊部分
接⼊MCP⼯å
·ï¼Œæ‰©â¼¤ AI 感知⼒,使AI能更好地理解⽤户意图;
通过 ä»£ç ç´¢å¼• / 项⽬⽂档 / CodeWiki 等è¾
助⼿段,使 AI å¯ä»¥åŸºäºŽé¡¹â½¬ä»£ç å¿«é€Ÿä»¿å†™ä¸ŽæŽ¨æµ‹ã€‚
这⾥存在⼀个å
³äºŽâ½‚档详细程度的权衡点:到底是使⽤⼤⽽å
¨çš„⽂档,还是⼩⽽精。
经过实践,最适合的â½
案应该是å
ˆç»™å‡ºâ¼€ä¸ªå¯ä»¥åŸºæœ¬æè¿°æ¸
æ¥šéœ€æ±‚çš„â¼©â½‚æ¡£ï¼Œå†æ ¹æ®AI实é™
产出的偏离æƒ
况来进⾏问题补å
ï¼Œå› ä¸ºâ¼¤éƒ¨åˆ†éƒ½æ˜¯â¼ä¸ªé‡å¤å‡ºçŽ°çš„å¸¸â»
问题(前提是保持⼯å
·å’Œæ¨¡åž‹å°½å¯èƒ½ä¸å˜ï¼‰ï¼Œè¿›â¾â¼æ¬¡è¡¥å
以后就可以完成⼀份精准好⽤的输⼊⽂档。
3. 任务复杂度⾼
AI â½£ç çš„æˆåŠŸçŽ‡ä¼šéšç€ä»»åŠ¡å¤æ‚åº¦çš„æå‡â½½åœ¨æŸä¸ªèŠ‚ç‚¹å¼€å§‹éª¤é™ï¼Œæ­¤æ—¶åˆ™éœ€è¦é€šè¿‡åˆé€‚çš„â¼¿æ®µé™ä½Žä»»åŠ¡çš„éš¾åº¦ï¼Œæœ€â¼¤åŒ– AI çš„â½£ç æˆåŠŸçŽ‡ï¼Œâ½½é™ä½Žå¤æ‚åº¦ä¸»è¦æœ‰ä»¥ä¸‹ä¸¤ä¸ªâ»†åº¦ã€‚
降低任务复杂度
è¯†åˆ«é‡å¤çš„â¼¯ä½œæµä¸Žä»£ç ï¼Œè¿›â¾é’ˆå¯¹æ€§ä¼˜åŒ–ä¸Žå°è£
å¤â½¤ï¼Œä»Žâ½½å‡å°‘â½£ç çš„ä»£ç é‡ä¸Žä¸ç¡®å®šæ€§ï¼›
复杂任务拆分,将单个不易测试的⼤型任务,拆成多个可验收的⼩型⿊盒;
固定实现思路/细节,统⼀思维模型,通过约定来减少 思维/选型 负æ‹
。
降低⼯程复杂度(⽂件量、耦合度)
借助优秀的⼯程结构设计,实现 ä»£ç  / 模块 / ⽂件 çš„å¤©ç„¶è§£è€¦ï¼ˆå¾ˆå¤šâ½£ç é—®é¢˜å
¶å®žå½’ç±»åˆ°åº•éƒ½ä¼šâ¾›åˆ°åŸºç¡€çš„ä»£ç â¼¯ç¨‹åŒ–é—®é¢˜ï¼Œå
·æœ‰ä¼˜ç§€â¼¯ç¨‹ç»“构的仓库天然就有较⾼的AI⽣成成功率);
é€šè¿‡ä»£ç ç´¢å¼•/项⽬⽂档/CodeWiki 等è¾
助⼿段,提⾼AIæ£€ç´¢æ•ˆçŽ‡ï¼Œå‡å°‘å› æ£€ç´¢å›°éš¾â½½æ–°å¢žçš„â½†â½¤ä¸Šä¸‹â½‚ã€‚
4. 缺少⾃检环节
çŽ°åœ¨çš„å¸¸è§„â½£ç æµç¨‹ï¼Œåªä¼šè¿›â¾åŸºç¡€çš„ä»£ç è§„èŒƒä¸Žè¯­æ³•æ£€æµ‹ï¼Œå¹¶æ²¡æœ‰å®Œæ•´çš„Review & Test 的流程。此时的AIåªæ˜¯å®Œæˆäº†ä»£ç â½£æˆï¼Œå¹¶ä¸â¼€å®šå®Œæˆäº†ä»»åŠ¡ï¼Œä¹Ÿä¸â¼€å®šæ»¡â¾œå®žé™
çš„ä»£ç è´¨é‡è¦æ±‚ã€‚
ä»£ç è´¨é‡â¾ƒæ£€
åœ¨æœ¬åœ°å¼•â¼Šâ¾ƒæ£€æµç¨‹ï¼ŒåŠæ—¶å®Œæˆä»£ç è´¨é‡ç¡®è®¤ï¼›
使⽤ Code 平台的AI CR助⼿进⾏发布前预检,可以⾃定义 CR 规则。
功能⾃检
前端可以通过接⼊MCP的â½
式让AI可以感知前端⻚⾯,从⽽进⾏部分功能测试;
后端可以通过单测直接查看功能正确性;
对于⽆法测试的⼤型任务,可以拆分到多个易于验收的⿊盒(如前端进⾏视图分离,对逻辑hooks部分进⾏单å
ƒæµ‹è¯•)。
5. 模型 / Agent 的差异与能⼒限制
模型的不同 / ç¼–ç â¼¯å
·çš„ä¸åŒï¼Œéƒ½ä¼šå½±å“â½£æˆç»“æžœï¼Œå³ä½¿æ˜¯åŒâ¼€ä¸ªæ¨¡åž‹ï¼Œä¹Ÿä¼šå› 为模型的随机性⽽产⽣不同的结果。要将 AI â½£ç è¿â½¤åœ¨â¼¯ç¨‹ä¸­ï¼Œä¸ä»
需要⾯对模型的短板,还需要对抗模型的随机性。
上下⽂窗⼝有限
留存过程⽂档,实现上下⽂复⽤,跳过收集环节
ä»£ç ä¸Šä¸‹â½‚ï¼šä»“åº“ä¿¡æ¯ã€æŽ¥â¼ä¿¡æ¯
项⽬上下⽂:PRD、功能⽂档
提供更精准的上下⽂,尽量不让 AI é â½‚ä»¶çŒœæµ‹
通过⼀些⽤户 Rule 监控注意⼒状态(⽐如:让 AI 每次对话结束都要⽤谢谢结尾,如果没有则说明上下⽂窗⼝已经爆了)
随机性 / 模型差异 导致⽣成å†
容的质量不稳定
æä¾›æ›´ä¸¥æ ¼çš„çº¦æŸâ½‚æ¡£ / Spec Codingâ½
案
è¡¥å
⾃检环节
修改型问题错误率⾼
ä¿®æ”¹åž‹é—®é¢˜ç›¸å½“äºŽä¸Šä¸‹â½‚æ›´å¤šï¼Œæ­£ç¡®çŽ‡è¦æ±‚æ›´â¾¼çš„â½£ç ä»»åŠ¡ï¼Œâ½½AI理解⼒弱,所以修改型任务准确率更低,这就是⼤家最常提到的改不动的问题。对于这个问题,主要的解法就是⽤前⽂提到的办法去降低任务复杂度:减少 AIç†è§£ä»£ç çš„éš¾åº¦ 或è€
é™ä½Žâ½£ç ä»»åŠ¡ä½“é‡
天⽣对某些问题能⼒弱,容易卡在死循环⾥
识别常â»
错误场景,By Case 分析积累经验,沉淀对应的解法
æ ¸â¼¼â½
法论与å
¨æµç¨‹ä¼˜åŒ–指南
这部分主要介绍提⾼AIâ½£ç æ•ˆæžœçš„â¼€äº›æ ¸â¼¼æ€è·¯ï¼Œå¹¶åŸºäºŽâ½£ç æµç¨‹ä¸­çš„å„ä¸ªèŠ‚ç‚¹ç»™å‡ºâ¼€äº›å¯ä»¥å®žæ–½çš„ä¼˜åŒ–â¼¿æ®µã€‚
▐ æ ¸â¼¼æ€æƒ³
最⼤化复⽤
â½†è®ºæ˜¯â¼ˆâ¼¯ç¼–ç è¿˜æ˜¯AIç¼–ç ï¼Œæœ€æœ‰æ•ˆçŽ‡çš„ææ•ˆâ½
æ¡ˆå°±æ˜¯æâ¾¼ä»£ç çš„å¤â½¤åº¦ã€‚ 在AIç¼–ç çš„èƒŒæ™¯ä¸‹ï¼Œé€šè¿‡å¤â½¤è¿˜å¯ä»¥æâ¾¼â½£ç ä»»åŠ¡çš„ç¡®å®šæ€§ï¼Œæžâ¼¤é™ä½Žä»»åŠ¡å¤æ‚åº¦ï¼Œæâ¾¼å¯¹ä»£ç çš„æŽŒæŽ§åº¦ï¼Œä¿è¯â½£æˆç»“æžœçš„è´¨é‡ã€‚
模块优å
ˆ
å°†æ¯â¼€éƒ¨åˆ†çš„å¼€å‘éƒ½è§†ä¸ºâ¼€ä¸ªæ˜Žç¡®è¾“â¼Šè¾“å‡ºçš„æ ‡å‡†å¯å¤â½¤æ¨¡å—ï¼ˆå¯ä¿¡ä»»çš„â¿Šç›’ï¼‰ï¼Œä¸”æ‰€æœ‰ç›¸å
³å£°æ˜Žå¯ä»¥é€šè¿‡æ˜Žç¡®çš„路径访问获取,每个功能都是å
·æœ‰æ¸
晰边界的库,AIå¯ä»¥å¾ˆâ¾ƒç„¶åœ°ä»Žä»£ç ä¸­èŽ·å–æ‰€éœ€çŸ¥è¯†ã€‚
(现在的AI⼯å
·å·²ç»å
·å¤‡äº†å¾ˆå¼ºçš„信息获取功能与推理能⼒)
胶⽔编程
优å
ˆä½¿â½¤å·²æœ‰æ¨¡å—ï¼Œä¸è¦â¾ƒâ¼°é€ è½®â¼¦ï¼Œé€šè¿‡æœ€â¼©é‡çš„â€œèƒ¶â½”ä»£ç â€å°†å®ƒä»¬ç»„åˆæˆå®Œæ•´ç³»ç»Ÿï¼Œä½ çš„ä»£ç åªè´Ÿè´£ï¼šç»„åˆã€è°ƒâ½¤ã€å°è£
、适é
ã€‚从⽽在使⽤AIå®Œæˆâ¼¤éƒ¨åˆ†ä»£ç çš„åŒæ—¶ï¼Œä»ç„¶ä¿ç•™é¡¹â½¬æŽŒæŽ§åº¦ã€‚
⼯作流复⽤
å¯¹äºŽâ¼€äº›å¯æ ‡å‡†åŒ–/重复性强/å¤æ‚åº¦â¾¼çš„â¼¯ä½œæµç¨‹ï¼Œå¯ä»¥åŠæ—¶æ²‰æ·€åˆ°æ ‡å‡†çš„AI⼯作流(åŒ
括但不限于 ⽂档、MCP、Skill),进⼀步扩⼤⼯作中的可复⽤范围。
⽂档å
ˆâ¾
⽂档是AI Codingçš„ç¬¬â¼€è¦ç´ ï¼ŒPRDå³å•æµ‹ï¼Œâ½‚æ¡£å³ä»£ç ï¼Œä¼˜å
ˆä¿®æ”¹â½‚æ¡£â½½ä¸æ˜¯ä»£ç ï¼Œè¿™éƒ¨åˆ†â½‚æ¡£å¹¶ä¸è¦æ±‚â¼¤â½½å
¨ï¼Œé‡ç‚¹æ˜¯å¯¹â¼¤è‡´â½
向的描述,与部分易混淆部分的详细说明。
基于 Spec-kit çš„æ¨¡åž‹ï¼Œç†æƒ³çŠ¶æ€ä¸‹æ˜¯æœ‰â¼€ä»½å¯ä»¥å’Œä»£ç 100%äº’ç›¸è½¬æ¢çš„â½‚æ¡£ï¼Œä½†æ˜¯çŽ°åœ¨å®žæµ‹ä¸‹æ¥å¾ˆéš¾è¾¾åˆ°è¿™ç§ç†æƒ³çŠ¶æ€ï¼ˆæ²¡æœ‰å¯ä»¥å®Œç¾Žæè¿°é¡¹â½¬çš„â½‚æ¡£ï¼Œâ½‚æ¡£ä¹Ÿæ²¡æ³•æ°å¥½è½¬æ¢åˆ°ä»£ç ï¼‰ï¼Œæœ€å¥½çš„ç­–ç•¥è¿˜æ˜¯å¤Ÿâ½¤å°±â¾ã€‚
⼆⼋定律
认æ¸
AI的28 定律,20% 时间可以完成80%的任务,但是剩下的 20% 要 80% 的时间;
0% → 80%(蜜⽉期):从零开始⽣成新功能⾮常快,AI 对å
¨æ–°çš„、独⽴的逻辑处理得极å
¶å®Œç¾Žï¼›
80% → 100%(深⽔区):当功能需要收尾,涉及到复杂的上下⽂、边缘 Case 修复、以及与旧逻辑的耦合时,AI 的表现会断崖式下跌,常常需要⼈⼯介⼊;
提⾼AI⽣成效率的重点,˜¯æâ¾¼å‰80%的质量,˜¯æâ¾¼åŽ20%的效率。
▐ å
¨æµç¨‹èŠ‚ç‚¹
⼀次 AI Coding 的执⾏流程⼤概可以概括为:理解⽤户意图 > 查找上下⽂> 设计执⾏â½
案>ä»£ç â½£æˆ > ç®€å•æ ¡éªŒã€‚ç”±äºŽ LLM 的随机性,每⼀个执⾏环节都åŒ
含着⽆限的可能,⽽掌控AIâ½£ç ï¼Œå°±æ˜¯åœ¨æ¯ä¸ªçŽ¯èŠ‚éƒ½è¿›â¾æ˜Žç¡®å£°æ˜Žä¸Žä»‹â¼Šï¼Œä»Žâ½½ä¿éšœAI按ç
§â¾ƒâ¼°çš„预期进⾏产出。
以下是从每个节点进⾏拆分,å
³äºŽAI编程流的每个部分,我们有什么⼿段可以进⾏优化。
这部分主要是基于每个节点进行优化方案讲解,并不代表实é™
éœ€è¦ä¸¥æ ¼æŒ‰ç
§è¿™ä¸ªæ­¥éª¤è¿›è¡Œæµç¨‹æ‹†åˆ†ï¼ŒæŒ‰éœ€é€‰ç”¨å³å¯ï¼Œå
·ä½“实践中的取舍和选型在后面的实战案例中会详细说明。
前置准备
准备项⽬/团队知识库,提供å
Œ
±ç»„ä»¶API,业务知识,åŒ
括但不限于 mcp / 知识库 / ⽂档
ç¡®å®šåŸºç¡€çš„ä»£ç å®žçŽ°è§„èŒƒï¼Œçº¦æŸä»£ç â»›æ ¼ï¼Œé€šå¸¸å‘½å README.md / AGENTS.md æ”¾åœ¨æ ¹â½¬å½•ï¼Œå¦‚æžœAI没有读取则指明(通过rules或è€
â¼¿åŠ¨æ·»åŠ ä¸Šä¸‹â½‚ï¼‰
以尽可能明确、解耦的形式,设计仓库的⽬录结构与实现â½
案
对于⽂件引⽤层级多的æƒ
况,AIå‡ºç çš„æ­£ç¡®çŽ‡æ˜¾è‘—ä¸‹é™ï¼ˆâ¼€éƒ¨åˆ†æ˜¯å› ä¸ºå‰ç«¯å±žäºŽå¼±ç±»åž‹è¯­â¾”ï¼‰
å¯¹äºŽæ›´åŠ å¤æ‚çš„é¡¹â½¬ï¼Œå¯ä»¥å°è¯•ä½¿â½¤â¼€äº›æ›´è¿›â¼€æ­¥çš„è§†å›¾åˆ†ç¦»ä¸ŽçŠ¶æ€ç®¡ç†ç­‰â½
案进⾏提前解耦。
开发前
明确需求å†
å®¹ï¼ˆä»£ç â½†å
³ï¼‰
äº§å“å¼€å‘å°±æ˜¯ä»Žæ¨¡ç³Šçš„â½‚æ¡£è½¬å‘ä»£ç ï¼Œâ½½ä»£ç æ˜¯â½†æ­§ä¹‰çš„ï¼Œæ¨¡ç³Šéƒ¨åˆ†åœ¨å®žçŽ°ä¸­å¿
然会被补å
ï¼Œå®žçŽ°ä¸åˆé¢„æœŸçš„â¼€â¼¤åŽŸå› å°±æ˜¯æ¨¡ç³Šéƒ¨åˆ†æ²¡æœ‰æ˜Žç¡®è¯´æ˜Žã€‚
对于不明确的æƒ
况,可以使⽤⼀些è¾
助⼯å
·æˆ–è€
åŸºç¡€æ¨¡ç‰ˆè¿›â¾æ ‡å‡†åŒ– prd çš„äº§å‡ºï¼Œå¹¶æ ¹æ®éœ€æ±‚è¿›â¾ä¿®æ”¹ï¼›
需求明确部分,不建议涉及å
·ä½“实现,⽬前的AIç¼–ç èƒ½â¼’å·²ç»â¾œå¤Ÿå¼ºâ¼¤ï¼Œé‡ç‚¹è¯´æ˜ŽåŠŸèƒ½éœ€æ±‚å³å¯ï¼Œæ˜Žç¡®çš„åŠŸèƒ½â½‚æ¡£â¾œä»¥è®© AI 设计出合适的â½
案,提前涉及实现不ä»
影响需求说明,也会限制 AI 的发挥;
如果需要进⼀步明确各部分功能点,可以通过 spec ⼯å
·è½¬æ¢æˆè¿‘似单å
ƒæµ‹è¯•的功能⽂档,å¿
要时将å
¶è½¬åŒ–成实é™
单å
ƒæµ‹è¯•。
任务设计与拆分
å¦‚æžœå•æ¬¡å®žçŽ°è¿‡äºŽå¤æ‚ï¼Œä¼šä¸¢å¤±å¯¹ä»£ç çš„æŽŒæŽ§åº¦ï¼›â½½å¦‚æžœå•æ¬¡ä»»åŠ¡ä½“é‡å¤ªâ¼¤ï¼ŒAI 容易在执⾏过程中丢失上下⽂与注意⼒。
ç»„ä»¶æ‹†åˆ†ï¼šå°†â¼€ä¸ªå¤æ‚ã€éªŒæ”¶å¡â¼ä¸¥æ ¼ä½†â½†æ³•ç›´æŽ¥æµ‹è¯•ã€æ¶‰åŠæ¨¡å—å¤šã€è¿­ä»£é¢‘çŽ‡â¾¼çš„â¼¤è§„æ¨¡ä»»åŠ¡ï¼Œæ‹†åˆ†åˆ°å¤šä¸ªç®€å•ã€è¿­ä»£é¢‘çŽ‡ä½Žã€å¯æµ‹è¯•çš„â¿Šç›’ï¼Œå¹¶è¿›â¾ç»„è£
。
流程拆分:将复杂任务进⾏分步拆解,并通过æ¸
单⽂档记录完成æƒ
况。
开发中(新建型需求)
创建并持续迭代过程⽂档,如⻚⾯README,组件说明,从⽽保障每次对话时AI可以快速获取信息,避å
AI读取过多⽂件。
(AI每次新对话都需要花费⼤量token在读取与需求⽆å
³çš„前置上下⽂)
及时管理上下⽂窗⼝,确保AI没有失去专注度(⽐如让AI每次执⾏完重述基础原则)
å°½å¯èƒ½ä½¿â½¤ä¸¥æ ¼è§£è€¦çš„æž¶æž„è®¾è®¡ï¼Œé˜²â½Œç•™ä¸‹æŠ€æœ¯å€º
引⼊⾃检机制,保障功能与质量
让AIâ¾ƒâ¾æ·»åŠ è°ƒè¯•ç‚¹ä½ï¼Œé€šè¿‡è°ƒè¯•ä¿¡æ¯ä¿®æ”¹é—®é¢˜
对⿊盒 组件/功能 创建单å
ƒæµ‹è¯•
通过MCP⼯å
·è¿›â¾â»šâ¾¯æµ‹è¯•
使⽤AIå•ç‹¬è¿›â¾ä»£ç è´¨é‡Review环节
对于部分持续失败的场景
尝试修改⽤户输⼊,提供更精确的上下⽂,或è€
向AI提供â½
向指引
让AIåœ¨ä¿®æ”¹ä»£ç å‰å
ˆè¾“出â½
案并审é˜
收集到案例中进⾏By Case分析
常见陷阱:在一次会话中进行大量任务,这会导致上下文太长太宽泛,模型注意力丢失。
对于独立的任务,应该及时新建对话
å¯¹äºŽå¤§åž‹ä»»åŠ¡ï¼Œåº”è¯¥åŠæ—¶ç”Ÿæˆå„ç±»è¿‡ç¨‹æ–‡æ¡£ï¼Œå½“æ¨¡åž‹æˆåŠŸçŽ‡æ˜¾è‘—é™ä½Žæ—¶åˆ‡æ¢å¯¹è¯å¹¶ä¼ å
¥è¿‡ç¨‹æ–‡æ¡£æ¢å¤ä¸Šä¸‹æ–‡
开发中(迭代型需求)
常â»
问题:
场景
发⽣了什么
后果
改⼀个功能,坏了另⼀个
æ·»åŠ åˆ é™¤åŠŸèƒ½æ—¶ï¼Œä¸â¼©â¼¼å½±å“äº†æ·»åŠ åŠŸèƒ½
花时间排查,可能越改越乱
想回到"昨天那个版本"
æ˜¨å¤©çš„ä»£ç èƒ½â½¤ï¼Œä»Šå¤©æ”¹äº†â¼€å †ï¼Œå
¨åäº†
找不到昨天的版本
试了三种â½
案,想回到第⼀种
第⼀种â½
案å
¶å®žæœ€å¥½ï¼Œä½†å·²ç»è¢«è¦†ç›–了
要么重写,要么将就
AI 改了不该改的地â½
让 AI 改⼀个⽂件,它顺⼿改了å
¶ä»–⽂件
不知道哪些被改了
ç›¸è¾ƒäºŽæ–°å»ºåž‹ä»»åŠ¡ï¼Œè¿­ä»£æ—¶æˆåŠŸçŽ‡æ›´ä½Žçš„åŽŸå› ä¸»è¦æ˜¯ï¼šAIå¤©ç”Ÿé‡æ¨¡ä»¿è€Œå¼±ç†è§£ï¼Œæ–°å»ºåž‹ä»»åŠ¡ä¾§é‡äºŽæ¨¡åž‹å¯¹ä»£ç çš„ä»¿å†™èƒ½åŠ›ï¼Œè€Œè¿­ä»£åž‹ä»»åŠ¡è¦æ±‚AIç†è§£ä»£ç ä¸”ç²¾å‡†ä¿®æ”¹ï¼Œæ‰€ä»¥æˆåŠŸçŽ‡æ›´ä½Žã€‚
注意及时约束,防⽌AIâ½¬æ ‡æ¼‚ç§»
Bad Case ❌
"帮我优化这个函数"(结果 AI 重构了整个类)
Good Case âœ
只优化函数 calculateTotal,不做任何å
¶ä»–的变更,集中于此函数一点
å°½é‡ä¼ â¼Šç²¾å‡†çš„ä¸Šä¸‹â½‚ï¼Œå‡å°‘AI搜索范围
Bad Case ❌
å¸®æˆ‘ä¿®æ”¹çŽ°åœ¨çš„å¼¹çª—æ ·å¼ï¼Œå’Œå
¶ä»–页面的统一
Good Case âœ
帮我修改pages/GoodsManagement/drawer.tsx ä¸‹çš„å¼¹çª—æ ·å¼ï¼Œå‚è€ƒpages/Warehouse/GoodsDetAIl/drawer.tsx
目前主流工å
·éƒ½å¯ä»¥æ·»åŠ 上下文,不用自己写path
对于复杂迭代,最好及时通过gitè¿›â¾ç‰ˆæœ¬ç®¡ç†ï¼Œå› ä¸ºç¬¦åˆéœ€æ±‚çš„ä»£ç å¯èƒ½åœ¨å‰â¼ä¸ªâ¼©æ—¶ï¼Œç”šâ¾„å‰â¼€å¤©çš„æŸä¸ªç‰ˆæœ¬ï¼ˆå¤šâ½
案对⽐⽤分⽀ / 版本管理⽤commit)
è¿›â¼€æ­¥çš„è¿­ä»£æˆåŠŸçŽ‡ï¼Œä¸»è¦ä¾èµ–äºŽä»“åº“æž¶æž„çš„è§£è€¦ç¨‹åº¦ï¼Œæ”¹ä¸åŠ¨æ—¶å°±è¦ä¾é æžè‡´æ€§çš„è§£è€¦
⼈⼯å¿
须介⼊时,可以采⽤⼈⼯提供â½
案,AI执⾏改动的半⾃动â½
æ¡ˆèŠ‚çœæ—¶é—´ï¼ˆå¦‚ï¼šæˆ‘è¦ç§»é™¤è¿™ä¸ªå‡½æ•°ä¸­ç¡¬ç¼–ç çš„ä¸šåŠ¡é€»è¾‘ï¼Œå°†å
¶æ”¹æˆå¤–éƒ¨ä¼ å‚ï¼Œå¹¶åœ¨æ”¹å¥½åŽåŒæ­¥ä¿®æ”¹æ‰€æœ‰è°ƒâ½¤äº†è¿™ä¸ªå‡½æ•°çš„ä»£ç ï¼‰
å®žåœ¨â½†æ³•ç»§ç»­è¿­ä»£æ—¶ï¼Œå€ŸåŠ©å·²æœ‰çš„åŠŸèƒ½â½‚æ¡£è¿›â¾æ•´ä½“ä»£ç é‡æž„ï¼ˆå¦‚æžœæ²¡æœ‰ï¼Œå¯ä»¥å°è¯•è®©AIæ ¹æ®â½¬å‰è¿›â¾æ€»ç»“ï¼Œä½†æ˜¯æ­¤æ—¶æœ€å¥½ä»Žæ¨¡å—å‘ä¸Šé‡æž„ï¼‰
å
¶ä½™éƒ¨åˆ†åŒæ–°å»ºåž‹éœ€æ±‚
完成后
基于需求完成æƒ
况及时进⾏问题点分析与资产沉淀,理想æƒ
况甚⾄可以考虑让 AI åŸºäºŽå·²æœ‰ç»éªŒè¿›â¾â¾ƒæˆ‘è¿­ä»£ï¼Œä»Žâ½½é€æ­¥æ‰©â¼¤èƒ½â¼’è¾¹ç•Œï¼Œè¸©è¿‡çš„å‘å°±ä¸è¦å†è¸©ï¼Œå†™è¿‡çš„ä»£ç å°±ä¸è¦å†™ç¬¬â¼†éã€‚
åŸºäºŽâ½£ç è¿‡ç¨‹ä¸­çš„å¸¸â»
问题,及时迭代基础规范⽂档
(⼩⼆端开发中沉淀的å
³é”®æ³¨æ„ç‚¹ï¼Œå°¤å
¶æ˜¯éœ€è¦æ²»ç†AI喜欢乱⽤hooks的⽑ç—
)
识别å
³é”®æµç¨‹ï¼Œæ²‰æ·€åˆ°Skill(资产化的AISOP,åŒ
含描述、指令、脚本、模版等å†
容)
识别å
³é”®æ¨¡å¼ï¼Œæ²‰æ·€åˆ°æ ‡å‡†åŒ– 组件 / 模版
å‡ºç å‡†ç¡®çŽ‡
⼈⼯介⼊成本
AI⾃由发挥
70%
â¾¼
有语料的三â½
åŒ
80%
低
私有åŒ
+调⽤规范
95%
低
看完以上的å†
容,有人会说:我只想使用基础的Chatè¿›è¡Œä»£ç ç”Ÿæˆï¼Œä¸æƒ³è¯„å®¡AI生成的方案,也不想跳转出去使用额外的工å
·ï¼Œæ€Žä¹ˆè®©æˆ‘çš„Chatç”Ÿç æ•ˆæžœæ›´å¥½ï¼Ÿä»¥ä¸‹æ˜¯å‡ ä¸ªå¿«æ·å¯ç”¨çš„è°ƒä¼˜æ‰‹æ®µï¼š
é
ç½®åŸºç¡€çš„é¡¹ç›®è§„åˆ™ï¼Œå¹¶æ ¹æ®å®žé™
的问题对å
¶è¿›è¡Œä¸€äº›è°ƒä¼˜ï¼›
提前设计较为解耦的项目结构,提高 AI 迭代的成功率;
接å
¥ä¸€äº›è¾
助的MCPå·¥å
·å’Œå·²éªŒè¯è¿‡çš„Skills进行能力è¾
助;
使用一些基础的提示词流程或模版,尽可能描述æ¸
楚需求;
当纯对话方式完å
¨é™·å
¥ç“¶é¢ˆæ—¶ï¼Œå¯ä»¥å‚考以下两种实战案例进行优化。
两类实战案例
AIç¼–ç è¿‡ç¨‹ä¸­ï¼Œæœ‰ä¸ªâ½è¾ƒé‡è¦çš„å
³æ³¨ç‚¹å°±æ˜¯ï¼šåœ¨ä¿è¯è¿­ä»£æˆåŠŸçŽ‡çš„åŒæ—¶ï¼Œè¿˜è¦ç•™å‡ºâ¼€å®šçš„â¼ˆä¸ºå¯ä»‹â¼Šç©ºé—´ï¼Œä»¥åŠä¿æŒå¯¹ä»£ç çš„æŽŒæŽ§åº¦ï¼›å¯¹äºŽéªŒæ”¶è¦æ±‚è¶Šâ¾¼çš„é¡¹â½¬ï¼ŒæŽŒæŽ§çŽ‡å’Œâ¼ˆâ¼¯å¯ä»‹â¼Šç©ºé—´çš„è¦æ±‚å°±è¶Šâ¾¼ï¼Œâ½½æ ¹æ®éªŒæ”¶è¦æ±‚ä»¥åŠå®žé™
æƒ
况,可以将实é™
需求分为以下两类。
需求驱动型
⼯程主导型
特点
强调"要什么功能"
AI ⾃主决策技术实现
⼈⼯介⼊少,å
³æ³¨ç»“æžœ
强调"怎么实现"
⼈⼯深度参与实现â½
案决策
⼈⼯介⼊多,å
³æ³¨ä»£ç è´¨é‡
ä»£ç è§„èŒƒåº¦è¦æ±‚
低
â¾¼
éªŒæ”¶æ ‡å‡†
低
â¾¼
隐含知识量
低
â¾¼
项⽬复杂度
低
â¾¼
AI扮演的⻆⾊
功能开发è€
ç¼–ç è¾
助员
案例
⼩⼆后台⻚⾯ / ç ”å‘â¾ƒâ½¤â¼¯å
·
线上C端⻚⾯ / 商家端⻚⾯
▐ 需求驱动型(DO WHAT)
这⼀场景的主要å
³æ³¨ç‚¹åœ¨äºŽï¼š
想办法完å
¨é˜æ˜Žéœ€æ±‚点,防⽌ AI è‡†é€ æˆ–åç¦»ï¼›
要有⼀定的è¾
åŠ©â¼¿æ®µæ¥ä¿è¯ä»£ç è´¨é‡ï¼Œä»Žâ½½æâ¾¼è¿­ä»£æˆåŠŸçŽ‡ï¼›
ç•™å‡ºâ¼€å®šçš„â¼ˆâ¼¯ä»‹â¼Šç©ºé—´ï¼Œä¸è¦äº§å‡ºâ¼€å †éš¾ä»¥ä»‹â¼Šçš„ä»£ç ï¼›
接下来将以⼀个⼩⼆端的需求,从新建⻚⾯到⼆次迭代功能,逐步对⽐不同â½
æ¡ˆäº§å‡ºçš„â½£ç ç»“æžœã€‚
新建⼀个⼩⼆端列表⻚
需求背景:
⼀个常规的列表⻚,按字段展示货品相å
³ä¿¡æ¯ï¼Œå¹¶ä¸”⽀持按字段过滤。
对于简单的⻚⾯⽣成,提供⾜够信息的⽂档,AIå³å¯å®Œæˆå¯¹åº”çš„éœ€æ±‚ï¼Œâ½½æ ¹æ®å®žé™
éœ€æ±‚çš„éªŒæ”¶å¡â¼ä¸Žâ½¤æˆ·éœ€æ±‚ï¼Œè¿˜å¯ä»¥åˆ†ä¸ºå¦‚ä¸‹ä¸‰ç§å®žçŽ°â»›æ ¼ã€‚
能⽤就⾏型
较有要求型
ä¸¥æ ¼åž‹
(已经有⼀份å
³äºŽå¸¸è§„列表查询⻚的实现模版)
实现路径
直接输⼊接⼝文档,å
¶ä»–完å
¨ç”±AI进行完善。
提供少量实现限定(使⽤tao- design),或è€
由AIâ¾ƒâ¾è¯»å–ä»“åº“ä»£ç è¿›â¾åˆ¤æ–­
æä¾›åŸºç¡€çš„ä»£ç å®žçŽ°è§„èŒƒä¸Žâ½‚ä»¶æ¨¡ç‰ˆ
按要求提供prd,并进⾏⼀定的结构化优化
æä¾›åŸºç¡€çš„ä»£ç å®žçŽ°è§„èŒƒä¸Žâ½‚ä»¶æ¨¡ç‰ˆ
按要求提供prd,并进⾏⼀定的结构化优化
æä¾›æ›´ä¸¥æ ¼çš„å
·ä½“å®žçŽ°ç»‘å®šï¼Œé€šè¿‡ä¸¥æ ¼çš„ä»£ç æ¨¡ç‰ˆé™å®šäº§ç‰©æ ¼å¼
效果
æ ·å¼
组件库å
œåº•åŸºæœ¬é£Žæ ¼
组件库å
œåº•åŸºæœ¬é£Žæ ¼
功能符合用户要求
符合视觉稿 / 平台规范要求
功能符合用户要求
可迭代性
非复杂æƒ
况,AI也可以再进行一定程度的迭代
AI可以进行一定程度的迭代
AI可以进行长期多次的迭代
ä»£ç è´¨é‡
ä»£ç ç»„ç»‡æ ¼å¼éšæœºï¼ˆè¿˜å¯èƒ½äº§å‡ºå•ä¸ªå·¨åž‹æ–‡ä»¶ï¼‰ï¼Œäººå·¥ä»‹å
¥æˆæœ¬é«˜
ä»£ç ç»„ç»‡æ ¼å¼è¾ƒè§„èŒƒï¼Œä»£ç è½»åº¦è§£è€¦ï¼Œäººå·¥ä»‹å
¥æˆæœ¬ä¸­ï¼Œä»ç„¶æœ‰éƒ¨åˆ†é€»è¾‘ä»£ç åŒ
含在主文件
ä»£ç å®Œå
¨æŒ‰ç
§ç»Ÿä¸€æ€è·¯ / 组件 å®Œæˆï¼ŒåŠŸèƒ½å®žçŽ°åˆ†æ•£åœ¨å„ä¸ªå­ç»„ä»¶ï¼Œä»£ç ä¸¥æ ¼è§£è—•ï¼Œäººå·¥ä»‹å
¥æˆæœ¬ä½Ž
å¯¹äºŽè¿™ç§ä¸¥æ ¼çš„è§£è€¦æ¨¡å¼ï¼Œäººå·¥ç¼–å†™æ—¶å¯èƒ½æˆæœ¬è¿‡é«˜ï¼Œä½†æ˜¯äº¤ç»™AI编写则是适得å
¶æ‰€
问题调试
分⽀控制
在微调阶段,及时通过Commitä¿å­˜ç‰ˆæœ¬ï¼Œå› ä¸ºAIâ½£ç æ˜¯è¦†ç›–å¼ï¼Œæ²¡æœ‰åŠæ—¶å­˜æ¡£ä¼šå› ä¸ºæŸäº›é”™è¯¯ä¿®æ”¹å¯¼è‡´ä»£ç æ··ä¹±ï¼Œå‰åŠŸå°½å¼ƒï¼ˆâ½¬å‰çš„â½£ç â¼¯å
·éƒ½æœ‰â¼€å®šçš„回退功能,但是不能过于信任)。
报错调试
常规报错直接将报错部分复制给Agent⾃⾏调试即可,可解决率80%(解决不掉的部分主要来⾃三â½
库å†
部的报错,需要特判)。
部分非阻断型报错,å
³æŽ‰å¼¹çª—即可,部分错误弹窗只是便于本地调试,线上并不会显示。
数据调试
数据问题不会有报错提示,可以让AI⾃⾏⽣成⼀些输出⽇志è¾
助排查。
xxxx显示为空,帮我在å
³é”®èŠ‚ç‚¹æ–°å¢žconsoleâ½‡å¿—ï¼Œä»¥ä¾¿æˆ‘å¤åˆ¶ç»™ä½ æŽ’æŸ¥é—®é¢˜ã€‚
以上页面调试也可以通过MCPå·¥å
·ï¼Œæˆ–è€
直接通过cursor的browser tab进行,篇å¹
问题不做展开。
进⾏⼀次涉及多个部分的中型迭代
需求背景(原始需求):
在货品管理页面中,货品除了基础信息外,还åŒ
含动态属性信息。这些属性由属性定义系统管理,支持多种数据类型(字符串、数字、布尔值、时间戳等),不同货品可能拥有不同的属性。
为了提升货品管理的效率和用户体验,需要提供以下功能:
属性展示:在列表中直观展示货品属性,支持用户自定义显示哪些属性
å±žæ€§ç­›é€‰ï¼šæ”¯æŒæŒ‰å±žæ€§è¿›è¡Œç­›é€‰æŸ¥è¯¢ï¼Œå¿«é€Ÿå®šä½ç›®æ ‡è´§å“
属性编辑:支持查看和编辑单个货品的属性信息。
明确需求
å
ˆåŸºäºŽæŽ¥â¼â½‚档和需求,交给AIåˆ›å»ºäº§å“â½‚æ¡£ï¼Œæ ¸å¯¹å®ŒæˆåŽè¿›â¼Šä¸‹â¼€æ­¥ï¼ˆå¸¸è§„æ”¹åŠ¨å¯ä»¥è®©AI直接⽣成,但如果涉及到复杂的交互,最好å
ˆçœ‹çœ‹AI准备怎么实现),以下是让AI扩写后的产品需求⽂档。
# 货品属性功能需求文档
## 需求背景
在货品管理页面中,货品除了基础信息外,还åŒ
含动态属性信息。这些属性由属性定义系统管理,支持多种数据类型(字符串、数字、布尔值、时间戳等),不同货品可能拥有不同的属性。
为了提升货品管理的效率和用户体验,需要提供以下功能:1. **属性展示**:在列表中直观展示货品属性,支持用户自定义显示哪些属性2. **属性筛选**ï¼šæ”¯æŒæŒ‰å±žæ€§è¿›è¡Œç­›é€‰æŸ¥è¯¢ï¼Œå¿«é€Ÿå®šä½ç›®æ ‡è´§å“3. **属性编辑**:支持查看和编辑单个货品的属性信息
---
## 一、功能需求
### 1.1 属性列展示
**功能:** åœ¨è´§å“åˆ—è¡¨ä¸­æ·»åŠ "属性"列,展示货品属性信息。
**交互:**- 默认显示所有属性,每个属性以"æ ‡ç­¾+值"展示- 操作区提供"é
ç½®å±žæ€§åˆ—"按钮,可é
ç½®æ˜¾ç¤ºå“ªäº›å±žæ€§- æ—¶é—´æˆ³ç±»åž‹æ˜¾ç¤ºä¸ºæ—¥æœŸæ—¶é—´æ ¼å¼ï¼Œæ–‡æœ¬ç±»åž‹æ”¯æŒæ¢è¡Œ- æ— å±žæ€§æ—¶æ˜¾ç¤º"æš‚æ— å±žæ€§"
---
### 1.2 属性筛选
**功能:** 在筛选区支持按属性进行筛选查询。
**交互:**- 筛选区显示"按属性筛选"åŒºåŸŸï¼Œå·²æ·»åŠ çš„ç­›é€‰æ¡ä»¶ä»¥ Tag 展示- 点击"æ·»åŠ å±žæ€§ç­›é€‰"打开弹窗- å¼¹çª—ä¸­é€‰æ‹©å±žæ€§ï¼Œç³»ç»Ÿæ ¹æ®å±žæ€§ç±»åž‹è‡ªåŠ¨åˆ¤æ–­ç­›é€‰æ–¹å¼ï¼š - 字符串/æ–‡æœ¬ï¼šæœ‰æžšä¸¾å€¼â†’æžšä¸¾å¤šé€‰ï¼Œæ— æžšä¸¾å€¼â†’æ–‡æœ¬åŒ¹é
 - 数字:数值范围 - 布尔:布尔值选择 - 时间戳:时间范围 - 时间戳范围:时间点- 输å
¥ç­›é€‰å€¼åŽç¡®å®šï¼Œç­›é€‰æ¡ä»¶ç”Ÿæ•ˆå¹¶è§¦å‘查询
---
### 1.3 属性编辑
**功能:** 在操作列提供"属性"按钮,可查看和编辑货品属性。
**交互:**- 点击"属性"按钮打开右侧抽屉- æŠ½å±‰ä¸­ä»¥è¡¨æ ¼å±•ç¤ºå±žæ€§ä¿¡æ¯ï¼ˆå±žæ€§é”®ã€å±žæ€§é”®åç§°ã€å±žæ€§ç±»åž‹ã€å±žæ€§å€¼ï¼‰- æ ¹æ®å±žæ€§ç±»åž‹æ˜¾ç¤ºå¯¹åº”ç¼–è¾‘æŽ§ä»¶ï¼š - 数字→数字输å
¥æ¡† - 布尔→开å
³ç»„ä»¶ - 时间戳→日期时间选择器 - 时间戳范围→日期时间范围选择器 - 字符串(有枚举值)→下拉多选 - å­—ç¬¦ä¸²ï¼ˆæ— æžšä¸¾å€¼ï¼‰â†’æ–‡æœ¬è¾“å
¥æ¡† - 文本→多行文本输å
¥æ¡†- 修改后点击"保存属性",保存成功后刷新列表并å
³é—­æŠ½å±‰
---
## 二、数据类型说明
| 属性类型 | 筛选方式 | 编辑控件 ||---------|---------|---------|| STRING | 文本匹é
 或 枚举多选 | 文本输å
¥æ¡† 或 下拉多选 || TEXT | 文本匹é
 | 多行文本输å
¥æ¡† || NUMBER | 数值范围 | 数字输å
¥æ¡† || BOOLEAN | 布尔值 | 开å
³ç»„ä»¶ || TIMESTAMP | 时间范围 | 日期时间选择器 || TIMESTAMP_RANGE | 时间点 | 日期时间范围选择器 |
---
迭代效果对比
由于不是所有页面都能找到可以恰好抽象描述出来的页面模版,所以这里采用 能用就行版 和 较有要求版 进行迭代效果对比。
能⽤就⾏初版 +
ä»
输⼊原始需求
较有要求型初版 +
ä»
输⼊原始需求
较有要求型初版 +
有⼈⼯阐明后的详细功能⽂档
最终效果
基本符合要求
功能做出来了,但是不太合预期
基本符合要求
ä»£ç è´¨é‡
⼤量修改主⽂件,多次迭代后成功率å¿
然⼤å¹
下降
迭代后主⽂件⾏数达到600⾏,基本丧失⼈⼯介⼊可能性
ä»
è½»å¾®ä¿®æ”¹ä¸»ä»£ç å­ç»„ä»¶åˆ’åˆ†æ¸
晰,人工介å
¥æˆæœ¬ä½Ž
主文件逻辑æ¸
晰,迭代未修改主文件
只修改了涉及相å
³çš„子组件(子组件å
¶å®žä¹Ÿå¯ä»¥æ›´å†
聚,这部分可以让AI再进行二次优化)
由上可â»
æ¸
晰的 prd 保证功能符合预期:如果没有预å
ˆå¯¹ AI 想要产出的å†
å®¹è¿›â¾å®¡æ ¸ï¼Œå¾ˆå®¹æ˜“å‘â½£åç¦»å¯¼è‡´ç»“æžœä¸åˆé¢„æœŸï¼›
ä¼˜è´¨çš„ä»£ç æâ¾¼è¿­ä»£æ•ˆçŽ‡ï¼šåˆå§‹çš„ä»£ç å¯¹åŽç»­è¿­ä»£çš„æˆåŠŸçŽ‡æœ‰è¾ƒâ¼¤å½±å“ï¼Œå¦‚æžœæºä»£ç å·²ç»åœ¨å †ç Œä»£ç ï¼ŒåŽç»­è¿­ä»£æ—¶AIä¹Ÿä¼šå»¶ç»­è¿™ä¸ªâ»›æ ¼ï¼Œå¯¼è‡´è¿­ä»£æˆåŠŸçŽ‡æ€¥é€Ÿä¸‹é™ï¼Œä¸”ä¸§å¤±â¼ˆâ¼¯ä»‹â¼Šä¿®æ”¹ä»£ç çš„ç©ºé—´ã€‚
▐ ⼯程主导型(HOW TO DO)
这⼀场景的主要å
³æ³¨ç‚¹åœ¨äºŽï¼š
ä»£ç éœ€è¦ä¸¥æ ¼ç¬¦åˆâ¼¯ç¨‹è´¨é‡ï¼›
编写è€
è¦ä¿ç•™å¯¹ä»£ç â¼¤éƒ¨åˆ†çš„æŽŒæŽ§åº¦ï¼Œä¸”äº§å‡ºå†
容⼈⼯可介⼊度⾼;
对于这类复杂度⾼ / 隐含知识多的项⽬,怎么让 AI 可以做 / 知道做。
需求背景与实现拆解
需求å†
容:
需要在⻚⾯Feeds下新增⼆级类⽬é
ç½®ï¼Œä¸”商品卡⽚点击跳转切换到跳转⾃有中间⻚(原来是直接跳转商品详æƒ
⻚),完成视觉更新。
实现拆解
服务端
前端
需要新增⼀个 ald solution,且⽀持⼆级类⽬召回⽀持(beå¬å›žæ—¶å¢žåŠ å‚æ•°ï¼‰
新增⼆级类⽬é
ç½®é¡¹å¹¶æ›´æ”¹æŽ¥â¼å‚æ•°
重写feeds组件(原有旧组件不⽀持多级 tab),修改卡⽚与 tab æ ·å¼
修改卡⽚跳转逻辑
前置知识准备
对于这类业务仓库,隐含知识及å
¶å¤šï¼Œè¿™äº›éšå«çŸ¥è¯†æœ‰äº›æ¥â¾ƒä¸šåŠ¡è¯­ä¹‰ï¼Œæœ‰äº›æ¥â¾ƒå†
部平台的开发模式,也有⼀些来⾃各⾃团队的实现规范。如果没有前置输⼊,AI 完å
¨â½†ä»Žä¸‹â¼¿ï¼Œæ­¤æ—¶éœ€è¦æå‰è¯†åˆ«ä¸šåŠ¡è¯­ä¹‰ä¸‹çš„éšå«çŸ¥è¯†ä¸Žâ¼€äº›å®žçŽ°è§„èŒƒ / â½
案,并将å
¶æ²‰æ·€åˆ°â½‚档,让 AI 有迹可循。
⾸å
ˆï¼Œæ¢³ç†å‡ºå½“前需求需要声明的隐含知识
什么是⾃建的中间⻚?什么是商品详æƒ
⻚?怎么进⾏跳转?
后端仓库å†
怎么新建⼀个solution,有没有什么相å
³çš„ä»£ç è§„èŒƒï¼Ÿ
前端仓库要使⽤什么⼯å
·åº“?⼀些基础功能如何实现?
Feeds组件库如何使⽤?é
ç½®é¡¹æ˜¯ä»€ä¹ˆï¼Ÿæ€Žä¹ˆæ›´æ”¹ï¼Ÿ
以下是梳理出来的前置⽂档,⽂档这部分建议 AI ⽣成é
åˆâ¼ˆâ¼¯ä¿®æ”¹ï¼Œå°½é‡é‡‡â½¤æ¸è¿›å¼æŠ«éœ²çš„原则,⼊⼝⽂档信息å
¨â½½ç²¾ï¼Œå¯¹äºŽéœ€è¦è¯¦ç»†ä»‹ç»çš„部分,可以另外创建⽂档进⾏补å
,最好是有⼀个利于统⼀读取的地â½
进⾏存放(前期冷启动的时候编写前置⽂档会花较多的时间,但是这是值得,且未来å¿
须要完成的事æƒ
,后期复⽤到的时候就会发现有预制⽂档有多爽)。
服务端相å
³â½‚æ¡£
前端相å
³â½‚æ¡£
技术â½
案产出
å‡†å¤‡å¥½ä»¥åŽå°±å¯ä»¥åŸºäºŽçŸ¥è¯†é—®ç­”å’Œä»£ç äº§å‡ºæŠ€æœ¯â½
案,这部分注意还是要提供å
³é”®ä¿¡æ¯ï¼Œå¯¹äºŽ AI 需要从知识库获取知识的æƒ
况,最好是让AI列出å
¶å‚考的å
·ä½“â½‚æ¡£ï¼Œé˜²â½Œå‡ºçŽ°åç¦»ã€‚ç”±äºŽæ˜¯é‡ä»£ç è´¨é‡çš„é¡¹â½¬ï¼Œéœ€è¦â¼ˆâ¼¯å®Œæˆå¯¹æŠ€æœ¯â½
æ¡ˆçš„å®Œæ•´å®¡æŸ¥ä¸Žä¿®æ”¹ï¼Œä¹Ÿæ˜¯å¯¹ä»£ç æŽŒæŽ§åº¦çš„ä¿è¯ï¼ˆæ¯•ç«Ÿçº¿ä¸Š bug 不能让 AI 背é”
)。
以下是采⽤的技术â½
案模版与实é™
产出â½
案,虽然技术⽂档看起来⾏数很多,但是å
¶å®žâ¼¤éƒ¨åˆ†éƒ½æ˜¯ä»£ç èŠ‚é€‰éƒ¨åˆ†ï¼Œé™å®šæ ¼å¼åŽçš„æŠ€æœ¯â½‚æ¡£å
¶å®žä¸ä¼šå ⽤太多的审查时间。
实现前首å
ˆæŒ‰ç
§å¦‚下模版进行技术方案编写,文档生成到仓库docs目录下,我确认后再进行实现
技术方案模版引用文档 - 声明引用的知识库文档,并写å
¥ä»ŽçŸ¥è¯†åº“æ ¹ç›®å½•çš„index.md获取版本号```## 引用文档- **知识库版本**:v1.2.3 (从 index.md 获取)- **相å
³æ–‡æ¡£**: - [æ ¸å¿ƒä¸šåŠ¡æµç¨‹æ–‡æ¡£](链接) - 用于理解业务逻辑 - [技术架构文档](链接) - 用于确定技术选型 - [API 规范文档](链接) - 用于接口设计参考```
相å
³æŽ¥å£ - å¦‚æ— åˆ™çœç•¥åŠŸèƒ½ç‚¹æ‹†è§£ - 讲用户的需求分解成å
·ä½“的功能点å
·ä½“实现方案 - 大致声明实现方案,并在å
³é”®éƒ¨ä½é
ä¸Šæ ¸å¿ƒä»£ç ï¼Œæˆ–è€
mermAId流程图问题预警 - 分析整体流程上可能会出现问题的地方,并提供应对措施相å
³åŸ‹ç‚¹ - å¦‚æ— åˆ™çœç•¥å†
容补å
- å¯ä»¥æ ¹æ®éœ€æ±‚å†
å®¹è‡ªç”±å‘æŒ¥ï¼Œæ ‡é¢˜å†
容自拟,做一些å†
容补å
,但是ä»
限一小部分
可以看到,被前置文档喂饱后,AI很完整地了解了自己该干什么,且完整地掌握了淘å†
C端业务仓库下的开发方式。
å
·ä½“执行阶段 - 解耦实现
å
³äºŽæ‰§è¡Œéƒ¨åˆ†ï¼Œé€»è¾‘å†
容前后端实现起来都大差不差,这部分å†
容方案确定以后AIäº§å‡ºçš„ä»£ç åŸºæœ¬éƒ½èƒ½æ»¡è¶³éœ€æ±‚ï¼Œè¿™å—é‡ç‚¹è®²ä¸‹C端前端最å
³é”®çš„视觉部分。
C端 AI ç¼–ç ä¸å¥½ç”¨çš„ä¸€ä¸ªä¸»è¦åŽŸå› å°±æ˜¯C端逻辑与视觉耦合度太高,而 AI 又天生缺乏对视觉å†
容的感知力,此时如果一次性让AIæŠŠç»„ä»¶çš„é€»è¾‘ä»£ç å’Œè§†è§‰éƒ½å†™å®Œå®¹æ˜“é¡¾æ­¤å¤±å½¼ï¼Œå¯¼è‡´é—®é¢˜ç›´æŽ¥ä¸Šå‡äº†ä¸€ä¸ªå¤æ‚åº¦ã€‚
æ­¤æ—¶æœ€ç†æƒ³çš„è§£æ³•ï¼Œè¿˜æ˜¯å°½å¯èƒ½çš„å°†è§†è§‰ä»£ç ä¸Žé€»è¾‘ä»£ç åˆ†ç¦»ï¼Œå
ˆè®© AI å®Œæˆé€»è¾‘ä»£ç éƒ¨åˆ†ï¼Œå†å•ç‹¬é€šè¿‡å
¶ä»–方案完成视觉组件的编写,再使用 AI 将逻辑与视觉组件进行绑定。基础的视图分离比较简单,就是首å
ˆå‡å®šä¸€ä¸ªæŠ½è±¡ç»„件,åŒ
含了属性与事件,再和一个只负责绑定事件与属性的纯视觉组件结合即可。
Bad Case ❌
视图和逻辑耦合严重,每次对视图的修改都要同时影响到逻辑实现
Good Case âœ
视图和逻辑完å
¨è§£è€¦ï¼Œè§†å›¾ä¿®æ”¹ä¸å†å½±å“é€»è¾‘,业务层和视图层均可以快速迁移复用
(为了展示æ¸
晰所以采用两个文件的形式,实践中可以合并到一个组件,只要保留这个视图分离的设计思维即可)
视图分离还有个好处就是极大地减少了前端的 CR 压力,比如一个视图分离后的购物车组件,CR 时只需要重点查看主逻辑 index.tsx çš„ä»£ç å˜æ›´ï¼Œå®¡æŸ¥åŽ‹åŠ›çž¬é—´å°‘æŽ‰å¤§åŠã€‚
é‡æž„è¿‡ç¨‹ä¸­ï¼Œä¹Ÿç»å¸¸ä¼šé‡åˆ°è§†å›¾å’Œé€»è¾‘ç»‘å®šè¿‡æ·±ï¼Œæ— æ³•å¤ç”¨ 视觉/逻辑 ä»£ç çš„æƒ
况,这时候也可以直接让 AI è¿›è¡Œä»£ç æ‹†è§£ï¼Œäº§å‡ºæ›´åŠ çº¯ç²¹çš„ 逻辑/视觉组件。比如这个需求中的商卡åŒ
å«å¤§é‡é€»è¾‘ï¼Œæˆ‘æƒ³å®žçŽ°æ–°çš„å¡ç‰‡æ ·å¼è¿˜å¾—ä»ŽåŽŸæ¥ 400 è¡Œçš„è§†è§‰ç»„ä»¶é‡ŒæŒ‘å‡ºæ¥æ‰€æœ‰é€»è¾‘ä»£ç ï¼Œç®€ç›´æ²¡æœ‰å¤©ç†ã€‚ä½†æ˜¯è®©AIå°†ç»„ä»¶æ”¹é€ æˆè§†å›¾åˆ†ç¦»çš„ç»“æž„åŽï¼Œå†é€šè¿‡D2Cäº§å‡ºæ–°çš„å¡ç‰‡ç»„ä»¶ï¼Œåœ¨è¿›è¡ŒçŠ¶æ€ä¸Žäº‹ä»¶çš„ç»‘å®šå³å¯ï¼ŒåŽç»­è¿­ä»£ä¹Ÿä¼šæ›´åŠ æ¸
晰。
基于以上思路,还可以进一步设计视图分离的组件库,预设组件的事件,由调用方进行视觉组件的实现,完成事件的绑定,做到最大化的逻辑复用。比如,我们业务有需要在不同场景中复用的feeds模块,为了保证最大化的逻辑复用,我们将 tab 渲染的部分交给调用方,调用方自己进行 tab 部分的视觉实现,只要给对应的å
ƒç´ 做好事件绑定即可。
后期沉淀
完成需求后,可以重新梳理整个流程中的问题与可以复用的å†
容,进一步完成资产沉淀,这部分å†
å®¹å‰æœŸçš„ç”Ÿæˆå’Œè°ƒæ•´éƒ½ä¼šæ¯”è¾ƒè´¹åŠ²ï¼Œä½†æ˜¯åŸºæœ¬å‡ ä¸ªä¸­åž‹éœ€æ±‚è®¤çœŸè·‘ä¸‹æ¥çš„æ²‰æ·€ï¼Œå°±å¯ä»¥è¦†ç›–å¾ˆå¤šæ—¥å¸¸å¼€å‘çš„å†
容了,然后就可以逐步进å
¥åäº«å
¶æˆçš„阶段。当日常开发场景枚举到80%以后,AI ä¼šè¶Šæ¥è¶Šåƒæˆ‘ä»¬å»¶ä¼¸å‡ºçš„åŒæ‰‹ï¼Œä¸æ˜¯èƒ¡ç¼–ä¹±é€ ï¼Œè€Œæ˜¯æŠŠæˆ‘ä»¬è„‘æµ·ä¸­çš„ä»£ç æ¬è¿åˆ°å®ƒä»¬åº”è¯¥å­˜åœ¨çš„åœ°æ–¹ã€‚
组件沉淀
åŸºäºŽå·²æœ‰çš„è§†å›¾åˆ†ç¦»ç»“æž„ï¼Œä¸šåŠ¡é€»è¾‘ç»„ä»¶çš„å¯å¤ç”¨åº¦å·²ç»ä¸å†å—é™äºŽè§†è§‰ç¨¿ï¼Œè€Œå‰¥ç¦»äº†ä¸šåŠ¡é€»è¾‘çš„è§†è§‰ç´ æï¼Œä¹Ÿå¯ä»¥å¿«é€Ÿçš„åº”ç”¨åˆ°å„ä¸ªé¡¹ç›®ã€‚
知识文档迭代
虽然在前置准备期已经提前进行了知识文档的生成,但是 AI 大概率还是会有理解偏离的æƒ
况,这时候就要对已有的文档进行补å
说明。比如:我提供了如何创建迭代的文档后,发现 AI è¿˜æ˜¯ä¼šè‡ªç”±å‘æŒ¥ï¼Œå¯¼è‡´æµç¨‹æ‰§è¡Œé”™è¯¯ã€‚äºŽæ˜¯æˆ‘é’ˆå¯¹å‡ ç±»å¸¸è§é—®é¢˜è¡¥å
äº†ä¸¥æ ¼çº¦æŸï¼Œé€šè¿‡è¿è¡Œæ—¶çš„åŠæ—¶ä¿®æ­£æ¥ä¿è¯æ–‡æ¡£çš„æœ‰æ•ˆæ€§ã€‚
工作流沉淀
完成一次需求以后,最重要的就是review整个实现流程,识别有没有 å¯æ ‡å‡†åŒ–/重复性强/涉及文件多 的可沉淀流程,比如这个需求就有多个可以落成简单 Skill çš„å·¥ä½œé¡¹ï¼Œæ ‡å‡†å·¥ä½œæµçš„æ²‰æ·€å¯ä»¥è®© AI 越来越可控。
后端 ald solution 创建,分步修改相应文件;
在前面的基础上,进行前后端流程串联,如:solution -> 接口文档 -> 前端调用函数生成;
前端天马é
ç½®é¡¹çš„æ–°å¢žä¸Žç›¸åº”çš„è¯»å–ä»£ç ç”Ÿæˆï¼›
é€»è¾‘ä»£ç ç”Ÿæˆ -> 调用D2Cå·¥å
·ç”Ÿæˆè§†è§‰ç»„ä»¶ -> 进行逻辑与视图的绑定。
团队介绍
本文作è€
卓屿,来自淘天集团-å¤©çŒ«æ–°å“è¥é”€æŠ€æœ¯å›¢é˜Ÿã€‚æˆ‘ä»¬è‡´åŠ›é€šè¿‡å¤§æ•°æ®ã€äººå·¥æ™ºèƒ½æ‰“é€ é¢†å
ˆçš„æ•°å­—化新品营销平台,服务于天猫新品å
¨é“¾è·¯å¢žé•¿ï¼Œé¢å‘å“ç‰Œå•†å®¶æž„å»ºä»Žæ–°å“ç ”å‘ã€æ–°å“å­µåŒ–åˆ°æ–°å“ä¸Šæ–°çš„â¼€ä½“åŒ–è§£å†³æ–¹æ¡ˆï¼Œè´Ÿè´£ã€Œå¤©çŒ«å°é»‘ç›’ã€/「天猫Uå
ˆã€/「TMIC」(天猫新品创新中心)/ã€Œæ·˜ç³»æ–°å“è¿è¥å¹³å°ã€ç­‰æ·˜ç³»æ ¸å¿ƒçš„æ–°å“ä¸Žæ–°å®¢ä¸šåŠ¡ï¼Œå¸®åŠ©å•†å®¶è¿žæŽ¥æ·˜ç³»ç«™å†
外流量、营销资源与数据,做规模化新品经营与确定性增长。
¤ 拓展é˜
读 ¤
3DXR技术 | 终端技术 | 音视频技术
服务端技术 | 技术质量 | 数据算法

View File

@@ -1,42 +0,0 @@
# 从需求到交付:一套基于 AI 辅助的高质量代码生产实践
**来源:** [微信公众号 - OLDLIE](https://mp.weixin.qq.com/s/V8AR1ooSgrafZgH6KgEEOw)
**作者:** oldlie
**日期:** 2026年4月11日 19:32
**标签:** #AI编码 #代码质量 #交付流程 #OpenSpec #Superpowers
---
## 核心流程
### 1. 需求分析与关键点识别
使用 `openspec explore` 指令向 AI 提出概要需求。核心目的是借助 AI 的信息处理能力,快速识别需求中的关键点、潜在风险和边界条件。
### 2. 制定分阶段实现路线图
利用 `superpower` 技能,要求 AI 将需求转化为清晰、可执行的路线图Roadmap将整个项目拆解为多个可管理的阶段。
### 3. 前置条件确认与详细设计
进入每个新阶段前,让 AI 确认所有前置条件是否满足。确认后协作进行详细设计,要求 AI 输出包含后台代码详细设计和关键过程时序图的设计文档,并严格参考既定的代码规范。
### 4. 设计审查与规范对齐
设计文档完成后进行严格审查,确保实现方案完全符合代码规范。**"先设计,后编码"** 的模式让问题在早期被发现和解决,效率远高于在代码写完后再去分散阅读源文件。
### 5. 代码实现与自动化审查
AI 完成代码编写后立即执行 `/review` 指令。`/review` 模式关注的维度(安全性、健壮性)与默认编码模式不同,要求更高,能发现单元测试难以覆盖的逻辑问题。
此外AI 有时倾向于使用最简单而非最高效的方式实现功能,或在处理长上下文时出现"偷懒"现象——人工触发的全面审查必不可少。
### 6. 查漏补缺与迭代循环
`/review` 之后让 AI 根据路线图再次检查当前阶段是否存在遗漏,确认无遗漏且满足进入下一阶段的条件后,再开启新一轮循环。
---
## 流程设计的深层思考
| 设计要素 | 价值 |
|---------|------|
| **路线图** | 将宏大目标拆解为具体步骤,减少单次交互的上下文信息量,确保整体目标不偏离 |
| **详细设计文档** | 集中审核设计逻辑比分散阅读代码更高效,更容易发现深层次问题 |
| **分步设计** | 管理上下文窗口长度,确保 AI 在每个环节保持高效和精准 |
**核心理念:** 通过精心设计的步骤、指令和审查机制,引导 AI 成为"结对编程"伙伴,共同交付高质量的代码。

View File

@@ -1,80 +0,0 @@
---
title: 基于 Harness + SDD + 多仓管理模式的 AI 全栈开发实践
source: https://mp.weixin.qq.com/s/ygQGSH5c7GHYDvkqWoQTXQ
author: 盖伦 / 得物技术
date: 2026-05-06
tags: [AI开发, 全栈, SDD, Harness, Cursor, Claude Code]
---
# 基于 Harness + SDD + 多仓管理模式的 AI 全栈开发实践|得物技术
## 一、核心理念Harness 思维 — 让 AI 模仿,而不是凭空创造
### 全栈AI开发最容易踩的坑
让AI从零开始写代码产生"外星代码"风格不一致、复用率低、采纳率低。AI生成了代码但Review成本和返工成本反而更高了。
### Harness 思维的核心:给 AI 一个"模仿对象"
给AI一个已有的实现作为参照让它照着复刻一份而不是凭空创造。
**四条原则:**
| 原则 | 说明 | 举例 |
|------|------|------|
| 找相似实现 | 在代码库中找到功能最相似的已有实现作为参照 | "结束语"参照"场景化欢迎语" |
| 复用优先 | 能复用的组件、接口封装、数据结构直接复用 | 复用greetingExtendInfo数据结构 |
| 模仿着复制 | "抄一份改一改"比用新方式好 | Controller/Service/Repository按已有模仿 |
| 约束生成范围 | 提示词中明确指定参考文件/参考接口 | 前端修改入口@FeatureTable/index.tsx:53-58 |
### 提示词体现 Harness
- ❌ 不推荐:`请实现一个结束语管理的 CRUD 接口`
- ✅ 推荐:明确指定参考文件、数据结构和接口路径,如"参照场景欢迎语功能(后端/api/v1/feature/list前端FeatureTable/index.tsx:53-58实现"
## 二、全栈工作区搭建与 Codebase Indexing
将前后端代码放在同一个工作区下的三个核心价值:
1. **Codebase Indexing**Cursor对工作区内所有代码进行向量化嵌入建立语义索引AI能跨仓库理解代码关系
2. **上下文完整**AI同时能看到前后端代码接口字段、命名风格自然对齐
3. **SDD文档集中管理**前后端SDD文档在同一工作区便于接口契约对齐
### Cursor vs Claude Code 实测对比
| 功能维度 | Cursor | Claude Code |
|---------|--------|-------------|
| 代码库语义索引 | 支持grep+语义检索,速度快 | 仅支持grep依赖模型能力 |
| 代码生成速度 | 极速平均1-3分钟 | 中速平均3-30分钟 |
| 代码采纳率 | 两者相当 | 两者相当 |
| 文件/代码段引用 | 快捷键、拖拽即可引用 | 需手动@文件路径,无法引用代码段 |
| 多Agent | 默认开启多Tab并行 | 需手动注册子Agent |
| 费率模型 | 失败任务不收费 | 失败任务耗时长容易浪费Token |
| 历史会话恢复 | 仅能查看当前项目会话记录 | 可查看全局会话记录 |
| 综合评价 | 快速迭代首选推荐Composer2模式 | 长链路复杂任务可用 |
## 三、SDD 驱动的全栈代码生成流程
- 全栈SDD需同时覆盖前后端
- 提示词编写范式:明确需求、参考实现、数据结构、接口契约
- 前后端需求点清单分工示例
- SDD文档产出与指令使用说明
## 四、多 Agent 协作:前后端并行开发
- Cursor中使用多Tab并行默认开启
- Claude Code中使用Subagent能力需手动注册
- 建议前端Agent专注UI/交互后端Agent专注API/数据
## 五、前后端联调Mock 数据与分阶段验证
- 三阶段验证策略
- Mock数据编写要点
- 后端独立构建验证
- 前后端联调步骤
## 六、警惕 SDD 陷阱:测试如何介入全栈研发
- SDD不等于需求文档
- 关注隐性功能(异常处理、边界情况、性能要求)
- 测试应尽早介入
## 七、综合效益与总结
核心公式:**Harness约束 + SDD规格 + 多仓(上下文) = 高质量AI全栈代码**

View File

@@ -0,0 +1,182 @@
# 天猫 AI 编码实践四文对照整理
## 原笔记引用
- [[天猫新品营销技术团队AI编码实战指南]]
- [[天猫新品团队AI编码实战指南]]
- [[97.9%采纳率胶水编程业务需求出码最佳实践【天猫AI Coding实践系列】]]
- [[AI-First产研团队的交付路径]]
---
## 一句话结论
这四篇文章虽然切入点不同,但核心结论高度一致:**AI 编码的上限,不主要取决于模型本身,而取决于团队能否把需求、规范、代码模式、领域知识、任务拆解和验证闭环,组织成 AI 可消费、可复用、可持续更新的工程资产。**
---
## 共同点
### 1. 都在反复强调:问题核心不是 prompt而是上下文工程
- [[天猫新品营销技术团队AI编码实战指南]] 强调AI 写不对、写不好、写不了、改不动,根因大多来自隐性知识、需求模糊、任务复杂、缺少验证和工程结构问题。
- [[AI-First产研团队的交付路径]] 进一步把这件事抽象为“初稿准确率”问题,指出模型差异不是主要矛盾,上下文质量才是。
- [[97.9%采纳率胶水编程业务需求出码最佳实践【天猫AI Coding实践系列】]] 则把上下文具体化成四层物料:开发规范、代码模式、领域知识、任务规格。
共同认识是:**AI 不是因为不会写代码才失效,而是因为拿到的上下文不完整、不准确、不可执行。**
### 2. 都主张“最大化复用”,而不是追求从零生成
- [[天猫新品营销技术团队AI编码实战指南]] 把“最大化复用”列为核心方法论。
- [[天猫新品团队AI编码实战指南]] 从代码复用、知识复用、工作流复用、工具复用、人机分工五个层级展开。
- [[97.9%采纳率胶水编程业务需求出码最佳实践【天猫AI Coding实践系列】]] 进一步提出“能抄不写,能连不造,能复用不原创”,本质是让 AI 做胶水而不是原创主体。
共识非常明确:**团队真正要建设的不是“更强提示词”,而是可复用的物料体系。**
### 3. 都认为自然语言文档和结构化规格是核心输入接口
- [[天猫新品营销技术团队AI编码实战指南]] 直接提出“自然语言第一”。
- [[97.9%采纳率胶水编程业务需求出码最佳实践【天猫AI Coding实践系列】]] 用 `Task Spec` 承载当前需求意图。
- [[AI-First产研团队的交付路径]] 则把 PRD、技术方案、任务拆解都 Skill 化,形成逐级收敛的上下文链路。
- [[天猫新品团队AI编码实战指南]] 还提出“视图分离”,把同一份 PRD 分成人读版和 AI 执行版。
这说明:**文档不是代码的附属物,而是 AI 时代的软件输入层。**
### 4. 都强调必须有验证闭环,不能把 AI 当黑盒执行器
- [[天猫新品营销技术团队AI编码实战指南]] 明确要求补上 review、测试、前后端验证。
- [[AI-First产研团队的交付路径]] 把 Daily Coding Agent 定义成“编码→单测→CR→修复”的循环。
- [[97.9%采纳率胶水编程业务需求出码最佳实践【天猫AI Coding实践系列】]] 的目标不是生成代码,而是提升生产可采纳率。
共同点是:**衡量标准不是“写出来了”,而是“能否稳定进入交付流程”。**
### 5. 都在把团队经验沉淀成可版本化资产
- `AGENTS.md`
- `spec.md`
- 样板代码
- 团队知识库
- Skill / 工作流脚本
- 上下文回写机制
四篇文章都在做同一件事:**把本来只存在于熟手脑子里的隐性经验,外化为 AI 能稳定读取的长期资产。**
---
## 关键差异
### 1. 关注层级不同
- [[天猫新品营销技术团队AI编码实战指南]] 更偏总论,解释为什么 AI 编码会失败,以及团队应如何补足工程基础设施。
- [[天猫新品团队AI编码实战指南]] 更偏场景化落地,讨论不同业务严苛度下的人机分工与复用策略。
- [[97.9%采纳率胶水编程业务需求出码最佳实践【天猫AI Coding实践系列】]] 更聚焦中后台“胶水需求”的高采纳率打法。
- [[AI-First产研团队的交付路径]] 更像组织级方法论强调交付链路、Skill-as-Code 和上下文持续回写。
### 2. 对“AI 最适合做什么”的判断重心不同
- [[97.9%采纳率胶水编程业务需求出码最佳实践【天猫AI Coding实践系列】]] 最鲜明,认为 AI 最适合做“90%抄 + 10%写”的胶水型工作。
- [[天猫新品营销技术团队AI编码实战指南]] 认为 AI 适合高复用、低歧义、边界清晰的 80% 工作。
- [[天猫新品团队AI编码实战指南]] 则进一步按 C 端、B 端、小二端、工具端区分 AI 的适用边界。
- [[AI-First产研团队的交付路径]] 关注点不在某类代码,而在整个交付链是否能把任务收敛到 AI 可执行粒度。
### 3. 物料结构的表达方式不同
- [[97.9%采纳率胶水编程业务需求出码最佳实践【天猫AI Coding实践系列】]] 是“四层物料体系”。
- [[AI-First产研团队的交付路径]] 是“L0/L1/L2 三层加载 + 六段式交付闭环”。
- [[天猫新品团队AI编码实战指南]] 是“代码/知识/工作流/工具/人机分工”五级复用。
- [[天猫新品营销技术团队AI编码实战指南]] 则是更通用的工程治理视角。
虽然结构不同,但都在回答同一个问题:**该给 AI 什么信息、以什么时机给、给到什么粒度。**
### 4. 适用对象和目标不同
- [[97.9%采纳率胶水编程业务需求出码最佳实践【天猫AI Coding实践系列】]] 更像“如何提高业务出码采纳率”。
- [[AI-First产研团队的交付路径]] 更像“如何让整个产研团队围绕 AI 重组交付方式”。
- [[天猫新品团队AI编码实战指南]] 更像“不同业务场景应该怎么设计 AI 工作流”。
- [[天猫新品营销技术团队AI编码实战指南]] 更像“AI 编码问题诊断与总策略”。
---
## 可以合并出的统一框架
如果把四篇文章压缩成一套统一模型,大致可以整理成下面这条链路:
1. **先显式化需求**
把模糊业务目标转成结构化需求、边界、验收标准。
2. **再补齐静态底座**
提前准备 `AGENTS.md`、代码规范、样板代码、领域术语表、知识库索引。
3. **按任务粒度动态加载上下文**
不全量塞资料,而是按项目级、文件级、任务级逐层注入。
4. **优先让 AI 做复用型工作**
组件拼装、页面搭建、CRUD、接口对接、样板代码延展、文档生成。
5. **复杂任务拆黑盒**
把大任务拆成边界清晰、可独立验证的小任务,降低“改不动”的概率。
6. **以验证闭环替代一次生成幻想**
编码、单测、CR、修复、回写知识形成迭代闭环。
7. **把过程沉淀为下一轮资产**
当前需求完成后,不只交代码,还更新 spec、知识库、样板和工作流。
这条链路本质上就是:**显式化 -> 结构化 -> 复用化 -> 校验化 -> 资产化。**
---
## 最值得吸收的几个强观点
### 1. AI 编码的 ROI 关键指标不是速度,而是“初稿准确率 / 采纳率”
- [[AI-First产研团队的交付路径]] 强调初稿准确率。
- [[97.9%采纳率胶水编程业务需求出码最佳实践【天猫AI Coding实践系列】]] 直接用采纳率来证明方法有效。
这比“生成了多少代码”更接近真实业务价值。
### 2. 关键规则必须静态在场,不能赌 AI 主动查文档
这个观点在 [[97.9%采纳率胶水编程业务需求出码最佳实践【天猫AI Coding实践系列】]] 里特别尖锐如果规范只放在可检索文档中AI 可能根本不会主动去看;关键约束应该放进 `AGENTS.md` 或类似的强注入入口。
### 3. 好的 AI 协作不是减少文档,而是提高文档的执行性
四篇文章都在证明AI 时代不是“不写文档”,而是要写**更能驱动执行的文档**
- 人看得懂
- AI 也能直接消费
- 能版本管理
- 能逐轮更新
### 4. AI 更像高效但不稳定的执行者,不是自动化替代品
这也是四篇文章最一致的现实主义立场:**不要神化模型,要工程化地驯化模型。**
---
## 对我自己的可落地启发
### 适合立即做的事
- 给常做任务建立固定 spec 模板。
- 把仓库中的关键规范上提到 `AGENTS.md` 或固定入口。
- 为高频页面/模块准备“样板代码”而不是只写原则。
- 把易踩坑知识整理成可检索知识库,而不是散落在聊天记录里。
- 每次做完需求后,回写实现经验,让下一次不是从零开始。
### 需要避免的误区
- 只优化 prompt不治理仓库结构。
- 把复杂需求整包扔给 AI不做任务拆分。
- 以“生成速度”代替“可采纳质量”。
- 希望 AI 从零原创一切,而不是基于现有资产复用。
- 做完代码后不回写知识,导致上下文长期失真。
---
## 适合作为总纲的理解
如果只保留一句总纲,可以是:
> **AI 编码不是“让模型替你开发”,而是“把团队的需求表达、代码模式、知识经验和验证流程,重构成模型可稳定执行的交付系统”。**

View File

@@ -0,0 +1,30 @@
# 《天猫新品营销技术团队AI编码实战指南
**来源:** [微信公众号文章](https://mp.weixin.qq.com/s?__biz=MzAxNDEwNjk5OQ==&mid=2650543356&idx=1&sn=c460ef2f9e36ffbdc1083dd36c2595b6)
**本地存档:** `C:\Users\Zane\Desktop\我的\天猫新品营销技术团队AI编码实战指南.html`
**作者:** 天猫新品营销技术
**标签:** #微信文章 #AI编码 #工程实践 #团队方法论
## 重新总结
这篇上篇文章的核心判断是AI 编码已经能显著提效,但真正的问题不在“模型会不会写代码”,而在“团队能不能把需求、上下文、工程结构和校验流程组织成 AI 可稳定执行的形态”。作者基于天猫新品团队实践,把 AI 编码常见失败归纳为四类:写不对、写不好、写不了、改不动;再把根因拆到项目知识缺失、用户输入模糊、任务复杂度过高、缺少自检闭环、模型和 Agent 能力边界这五个维度。
文章给出的主线不是追求一次性完美生成,而是通过工程化手段提升“前 80% 的成功率”和“后 20% 的收敛效率”。对应的方法论有三条:最大化复用、自然语言第一、接受二八定律。最大化复用强调把系统拆成可理解、可调用、可组合的模块和工作流,尽量让 AI 做胶水代码而不是重造轮子;自然语言第一强调文档、规范、需求说明和过程记录要先于代码,文档质量直接决定 AI 产出质量;二八定律则提醒团队接受 AI 在 0% 到 80% 阶段很快,但在复杂收尾、边界修复、旧逻辑耦合阶段会明显失速,因此需要人为介入和流程补强。
在执行层面文章按完整流程给出优化建议开发前先准备知识库、AGENTS/README、代码规范、目录边界和可检索上下文需求阶段把模糊 PRD 转成更明确的功能描述,必要时引入 spec 化文档;任务设计上降低复杂度,把大任务拆成可验收的小黑盒;开发中持续维护过程文档和上下文,避免 AI 因窗口限制失焦;完成后补上 code review、测试、前后端验证等自检环节。作者尤其强调很多 AI 编码问题本质上不是“提示词技巧”问题,而是仓库结构差、耦合重、文档缺、验证弱导致的工程问题。
文章最后通过场景分类说明实践差异:一类是“需求驱动型”,重点在让 AI 准确理解业务目标和验收标准;另一类是“工程主导型”,重点在模块边界、复用能力、视图分离、知识沉淀和工作流建设。整体结论很务实:不要把 AI 当成能脱离工程体系独立完成软件开发的黑盒,而应把它纳入团队的文档、规范、测试、知识库和流程体系中,作为一个高效但不稳定的执行者来管理。
## 核心要点
- 四大痛点:写不对、写不好、写不了、改不动。
- 五类根因:项目隐性知识太多、需求输入不清晰、任务复杂度过高、缺少 review/test 闭环、模型与 Agent 有天然边界。
- 三条方法论:最大化复用、自然语言第一、接受二八定律。
- 真正的提效点不是“多写 prompt”而是把需求、文档、知识库、模块边界和测试流程变成 AI 可消费的上下文。
- 复杂项目里AI 更适合完成高复用、低歧义、边界清晰的 80% 工作;剩余 20% 仍需要工程治理和人工兜底。
## 对我的启发
- AI 编码的上限,更多取决于仓库可读性、知识显式化程度和验证手段,而不是单次对话技巧。
- `AGENTS.md`、README、Spec、CodeWiki 这类文档不是附属物,而是 AI 开发链路里的输入接口。
- 如果一个需求总是“改不动”,优先怀疑任务拆分、模块耦合和上下文组织方式,而不是只怪模型笨。

View File

@@ -1,13 +0,0 @@
# 微信文章(未抓取到内容 - 触发验证码)
**来源:** [微信公众号文章 (未知公众号)](https://mp.weixin.qq.com/s?__biz=MzAxNDEwNjk5OQ==&mid=2650543356&idx=1&sn=c460ef2f9e36ffbdc1083dd36c2595b6)
**日期:** 2026年未知具体日期
**标签:** #微信文章
---
> ⚠️ 该文章在抓取时触发了微信的 CAPTCHA 验证码保护,未能获取到内容和标题。
>
> 原始 URL 参数__biz=MzAxNDEwNjk5OQ==, mid=2650543356, idx=1, sn=c460ef2f9e36ffbdc1083dd36c2595b6
>
> 建议在微信客户端内手动打开,或使用 WeChat 官方 API 获取。

View File

@@ -1,20 +0,0 @@
---
title: 测试笔记 - 共享目录转移
date: 2026-03-20
tags: [测试, 共享目录]
---
# 测试笔记
这是一篇测试笔记,用于验证共享目录转移流程。
## 创建信息
- 创建时间: 2026-03-20 03:01
- 来源: Mac mini 共享目录
- 目标: zanepc Obsidian InBox
## 测试内容
如果这篇笔记能成功转移到 zanepc 的 Obsidian 中,说明流程配置正确。
---
*自动创建用于测试共享目录转移*

View File

@@ -1,86 +0,0 @@
# 淘天营销中后台生码工作流最佳实践
**来源:** [微信公众号 - 大淘宝技术](https://mp.weixin.qq.com/s/VjTyHFr17l_bObG6x8-Mmw)
**作者:** 营销前台技术团队(大淘宝技术)
**日期:** 2026年4月27日 16:16
**标签:** #淘天 #营销中后台 #AI生码 #云端托管 #工作流 #大淘宝技术
---
## 升级路径总览
核心决策:从"本地+云端双路径" → **统一收敛至云端托管生码**(基于 AoneSuper
**三个核心工程:**
1. 跨仓库工作区git submodule + turborepo
2. 可编排场景化工作流
3. 知识自动沉淀(功能树 + 领域 Skill
**核心方法论:**
- 给恰好够用的精确知识
- 确定性逻辑交工程
- 知识建正向循环
---
## 为什么弃用本地研发
| 问题 | 具体表现 |
|------|---------|
| 环境配置难统一 | 系统版本、Node 版本、网络代理差异巨大,排查困难 |
| AK 管理困难 | 生态用工需明文存储 AK 在个人设备,分发/轮换/回收无管控 |
| 执行易中断 | 电脑息屏/网络断开导致长任务中断,需手动续跑 |
## 为什么选 AoneSuper 而非自建
S1 自建了基于 LangGraph 的多 Agent 架构,但发现:
- 基建维护成本高
- CodeAgent CLI 社区生态Skills、MCP、SubAgent迅速成熟
- 自建 LangGraph 方案边际收益递减
**结论:** 接入 AoneSuper投入重心从基建打磨转向业务效果优化。
---
## 跨仓库工作区
### 设计思路
1. **聚合需求仓库**:创建"需求工作区"文件夹,聚合所有相关仓库
2. **引入 git submodule**:外层文件夹作为独立 git 空间,用于存放 Agent 配置Skills、MCP、SubAgent和中间产物需求理解、方案设计、任务列表等
3. **消除副作用**:通过脚本自动化 submodule 操作,降低同学理解成本
### 研发调试优化
利用 **turborepo** 的 monorepo 构建能力,实现:
- 一键启动所有需求子仓库服务
- 自动配置子仓库间的依赖 link
- 解决多层依赖(基础组件 → 业务组件 → 前端业务)的调试问题
---
## 可编排场景化工作流
### 两种场景的差异化策略
**场景一:迁移/重构(高确定性)**
- 已有明确的"A 迁移到 B"的确定性逻辑
- 架构说明文档 + 领域 Skill 固化规则
- 将迁移/重构的逻辑转化为可复用的领域能力
**场景二:日常迭代(低确定性)**
- 需求边界模糊,需要大量上下文
- 引入**功能树**实现精准查表式知识供给
- 辅助 D2CDesign-to-Code/ API 还原优化
### 功能树
核心思想将一个项目的结构化知识路由、组件、数据流、API提取为树形索引Agent 在接到需求时可以快速"查表"定位到代码位置,而不是大海捞针。
### 知识自动沉淀
通过持续积累,形成**提效飞轮**
1. 生码过程中发现知识盲区
2. 补充功能树 / 领域 Skill
3. 下次生码质量提升
4. 释放人力持续补充更多知识

View File

@@ -5,20 +5,471 @@
> 原文https://mp.weixin.qq.com/s/EdVjZuBVcXjd30TpxyLsXQ
> 完整报告下载:关注公众号 **GIS极客**,后台回复 **"清华HarnessEngineering"** 获取下载链接
---
## 核心观点
驾驭工程 (Harness Engineering) 的核心是**围绕高自治、长时程 AI 构建可治理的操作系统层**,将提示词、上下文、智能体等能力制度化为机械可验证的契约、状态恢复与审计体系,从而从 **"让AI听懂"** 升级为 **"让AI系统可信、可控、可持续运行"**。
Visual: [[清华大学 驾驭工程 Harness Engineering 研究报告.visual]]
---
## 报告概述
## 提取说明
本文为清华大学发布的研究报告,主要内容以图片形式呈现(报告正文截图)。需要阅读完整版请按上述方式获取 PDF
这次按“每张图 = 一个模块”重组
报告关注的关键问题:
- 高自治 AI 系统的治理与可控性
- 长时程 AI 运行的操作系统层设计
- 提示词、上下文、智能体的制度化
- 机械可验证的契约、状态恢复与审计体系
- 图片已下载到 `清华大学 驾驭工程 Harness Engineering 研究报告.hires/`
- 每个小节对应一张原图
- 小节标题优先按图片主标题人工整理
- 正文尽量保留 OCR 全文,只做了轻度空格清洗
风险:
- OCR 对英文、链接、少数专有名词和局部排版仍有误识别
- 个别页图像里有示意图、图标或多栏布局,转写会比纯段落页更差
- 如需完全准确版本,仍应以对应原图为准
---
### 驾驭工程Harness Engineering研究报告
页码:`page-01.jpg`
驾驭工程 (Harness Engineering) 研究报告一下 0 乁《电脑日志面板 Agent 核心判断:驾驭工程是操作系统层提示词工程是语言层智能体工程是工作流层;驾驭工程是操作系统层。对象:高自治、长时程、可治理的 A 係统丨 26 年 26
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-01.jpg]]
---
### 清新研究团队简介
页码:`page-02.jpg`
· 领导学术研究团队近 30 人。指导大数据、 AI 、人形机器人等多个产业团队。冫目视频号: @清新研究;公众号: @清新研究九 | 司月沈阳:清华大学新闻学院 / 人工智能学院双聘教授、博导 · 团队坚持:整体主义、实证主义、社会建构、进步主义。 " 六大研究方向: 。 1 A 吠模型理论与哲学 4 · 新媒体与网络舆论网邮箱: 124739259@q q ℃ om 圈 oo 囗囹 00 囗 2 · AI 文艺回。 回回 回回彗 3 A | 应用 6 × R 应用丨微博: @ 清新研究 | 公众号: @ 清新研究
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-02.jpg]]
---
### 全文结构目录
页码:`page-03.jpg`
全文结构目录术语状态 从术语状态 ,按“定义一证据一结构一落地”展开。结构 · 四层链条到 “ · 它和提示词 / 上下刘智能体工程的边界是什么证据。第一部分回答“ · 。这个词现在是什么落地 · 中国落地路线 “ · 按“定义一证据一结构一落地”展开。 @ 清新研究团队 | 2026 年 3 月 2
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-03.jpg]]
---
### 一句话结论
页码:`page-04.jpg`
一句话结论总判断驾驭工程不是把提示词再写长一点,而是把模型周围整个制度化执行环境设计出来 0 怎么让型动起来怎么说清 0 一模型提示词工程 - 智能体工程程制杂“提示词工程解决“怎么说清楚” 0 。智能体工程解决“怎么让模型动起来” 0 @ 淆究团队《 2026 年 3 月 26 日
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-04.jpg]]
---
### 四层链条:从语言到操作系统
页码:`page-05.jpg`
四层链条:从语言到操作系统驾驭工程核心观点提示词工程、上下文工程、智能体工程、骘驭工訴一互斥关系,而曰层上语言层关注指令表达,上下文层关注状态供给 > 上下文层语言层智能体工程关注状态供给关注指令表达 @ 清新研究团队 | 2026 年 3 月 26 日
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-05.jpg]]
---
### 第一部分:术语状态
页码:`page-06.jpg`
第一部分 | 术语状态葳至 2026 03 一 26 、 、 、 、 \ 术语状态冫当前术语体系基本稳定,关键定义待进一步明确。 @ 清新研团队 | 2026 年 3 月 26 日
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-06.jpg]]
---
### 它不是教科书术语,但已被前沿团队反复使用
页码:`page-07.jpg`
它不是教科书术语,但已被前沿团队反复使用术语状态 H4R § S 卪 48 q 2026 02m OpenAl 在 2026 02 · 11 明确使用 harness en.. 这说明它已进入一线工程实践话语。早些时候近期、 、 、 、 、 、 、乛工程博客时间轴但它仍在形成中,边界尚未像“数抿库”或“擞。服务”那样冻结。 0 边界仍在探索和定义中。数据库徼服务歡櫷源: https濯0些na靴om刑e对ha賺翰e哣谳丽g/ httpsflwww.anthtopic.com/engineering/effective-harnesses-for-lcng-running-agents https//www.arthropic.wm!engineering/harness-design-lcng-running•apps
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-07.jpg]]
---
### OpenAI 为什么叫它 Harness Engineering
页码:`page-08.jpg`
OpenAI 为什么叫它 Harness Engineering OpenAI 证据五个月后仓库达到约百万行 0 仃人工代码启动 OpenAI Codex 实验场景 HARNESS 估算开发时间 0 ENGINEERING 约为手写的 1 / 10 丿 OpenAI 的核心变化是:工程师的主业不再是手写代码代码库
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-08.jpg]]
---
### Anthropic 为什么持续谈 Harness
页码:`page-09.jpg`
Anthropic 为什么持续谈 Harness Anthropic 证据一亠一亠 Anthropic 的实践把 harness 从抽象口号压成 2025 · 11 的文章聚焦长时程会话,@@鄱 2026 · 03 的文章把 harness design 推到长时程“祀一数据源: https://mvw anthropic.com/engineering/effective-harnesses-for- long-running-agents https://www anthropic.com/engineering/harness-design-long-running-apps
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-09.jpg]]
---
### 为什么“现在”突然重要
页码:`page-10.jpg`
7 回答问丿聊天气泡因为模型已跨过“回答问题”的门槛为什么“现在”突然重要 · OpenAI 己把 agents 定义为能完成从简单目标到开放式完成开放式任务 工作台 · Anthropic 区分 workfl ow 一 agent 数据来源: https:!/developers.openai.com/api/docs/guides/agents https://www.anthropic.com/engineering/building-effective-agents
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-10.jpg]]
---
### 瓶颈已经从“生成更多”转向“让人只在高杠杆节点出手”
页码:`page-11.jpg`
瓶颈已经从“生成更多”转向“让人只在高杠杆节点出手”瓶颈变化 1 优先级判断节点出手代码吞吐 (Code Throughput) OpenAI 公开写道,随着代码吞吐上升,瓶颈变成了 human QA• 这意味着系统设计的目标不再是“让多做点” 2 · 3 0 LOW SCARCE 人类注意力 (Human Attention) EXECUTIVE SUMMARY HUMAN QA BOTTLENECK 关踺高杠杆节点
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-11.jpg]]
---
### 中国落地窗口已经形成
页码:`page-12.jpg`
中国落地窗口已经形成 10 介 1408 亿元数字经济体量与增长 2024 年数字经济核心产业增加 11 。 08 亿人川 24 年我国同民換 / ' | 人工智能 + 未来驱动引擎互联网昔及率、网络规模与普及率。中国政策、网络规模与数字经济体量力数源智龍应用础彘施体生膚 0 过 · 2024 年数字经济核心产业增加值 140891 亿元。 2024 年我国网民规模 11 08 亿人,互联网普及率 78 6 蟲樾睾:卜 ttpc / 艹虱“ / 。伍 2St2n 却 25 旧 0 四 62m htA ;卜 t 丿 / “ “ “ 《 “伍。 ti ' 丿闸。叫 /VS 馴 34 117 四 恒靼刀 - “ m “彐“ ' n “ 6 / - 加“ 3 / 20 理 ms3103 仆。 。 。 / 心 03 02 312 n8 ht
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-12.jpg]]
---
### 第二部分:四层链条
页码:`page-13.jpg`
02 第二部分丨四层链条先厘清层级边界,才能避免把所有能力混叫成噁严《四、自主 (Autonomy) 、协作 b “薹础词 @ 清新研究团队丨 2026 年 3 月 26 日
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-13.jpg]]
---
### 提示词工程:语言层
页码:`page-14.jpg`
0 提示词工程:语言层提示词工程定义 · OpenAl 仍把 prompt engineering 定义为 它解决的是“怎么说清楚” · 重点包括角色设定、输出格式、上法、示例组织一臼令优先级指令纸( SYSTEM PROMPT) 、系统提示 (SYSTEM PROMPT) 色设定 你是一个专业的 A 勵手 · 上下给法:基于以下信息“格式约束 (FORMAT CONSTRAINTS) 出格。请使用 Markdowm 指先级:请优先执行, 示例组织 EXAM PLES )示 1 :用户输入“ A | 输出“示例 2 丿 0 数据来源: https://developers.openai.com/api/dcxs/guides/prompt-engineering https://developers.openai.com/api/docs/guides/prompt-engineering
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-14.jpg]]
---
### 提示词工程的能力边界
页码:`page-15.jpg`
提示词工程的能力边界提示词工程边界(单轮任务) g 单轮生成 0 结构化输出 0 风格一致性和清晰遵循验收(刀当任务是短时、闭环、单步可验收时,提示词工程往往已经够用。很多团队在这里就能拿到很高 ROI ,不需要急着上 Agent0 数扼来源: https://developersopenai.com/api/docs/guides/prompt-engineering https://wwwnnthropic.com/engineering/building-effective-agents 复杂长时程任务(挑战与限制)严 2 @ 多步推理与起忆 × ?外部工具交互 × × @ 动态环境适应外部数据错反馈面临长时程、多目标、需持续交互的任务时,单纯提示词工程能力不足,需要引入 Agent 等更复杂系统。
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-15.jpg]]
---
### GPT-5.4 之后,提示词重点被推向“契约化”
页码:`page-16.jpg`
GPT-5.4 之后,提示词重点被推向“契约化”提示工升 OpenAl 最新指导把高杠杆提示尹词变化概括为 output cont•• 这说明提示词工程并没有消失,而是在向可执行契约演化。 。提示词不再只是“写得像人”而是开始承担流程控制语义 0 數抿耒源: https://developers.openai.com/api/docs/guides/prompt-guidance/ 0 目标状态孑终止信号 S\JCCESS \ 具体的准确度数完成条件凵逻辑约刺 (Completion Conditions) nput/output protocol, 工具期待 (TOOI Expectations) database and interfaces JSON 」 5 4 function calls with 咿 predefined parameters 输出契约 (Output Contracts) Fixed output format Fixed output format
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-16.jpg]]
---
### 规划、前导语与过程可见性
页码:`page-17.jpg`
PLAN 0 0 计划 MILESTONE 确定目标与步驟规划、前导语与过程可见性工具前导语工具系统区分指息 0 前导语 PREAMBL OpenAl 针对 agentic tasks 强调:对长时或重工具流程 preamble 让模型在调用工具前说清意图。工具调用 TOOL CALLS 0 执行操作,与外部系统交互阶段更新 PHASE UPDATES phase 则帮助系统区分中间 commentary 与 fina. 完成 COMPLETE 达到预期鲒果数塘源: https://dwelopers.openaicom/api/docs/guides/prompt-guidance/
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-17.jpg]]
---
### 隐藏中间层:上下文工程
页码:`page-18.jpg`
03 隐藏中间层《上下文工程如果提示词工程管“说什么” ,上下文工程就管“喂什么”管“说什么”提示词工程 @ 清澌研究团队丨 2026 年 3 月 26 日 Context Engineering 管“喂什么” 0 0 、 0 上下文工程
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-18.jpg]]
---
### 上下文工程:隐形内核
页码:`page-19.jpg`
上下文工程:隐形内核上下文工程定义睾 Anthropic 明确把 context engineering 视核心问题不再只是 system p rom pt · 它包括系统指令、工具、外部数据、消息历史、 MCP 、长期状态等。外部数据消息历史上下文状态球体 0 提示 MCP 长期状态数据来源: https://www.anthropic.com/enqineerinq/effective—context—enqineerinq—for-ai-aqents
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-19.jpg]]
---
### 上下文是关键但有限的资源
页码:`page-20.jpg`
上下文是关键但有限的资源上下文有限搋挤 0 0 上下文物理边界上下文窗囗不是抽象参数,而是 Agent 能否保持一致行为的物理边界。 02k / 128k USED 上下文预算占用情况任务本身关键约束 ,上下文一旦拥挤,任务本身、关键约束和新证据就会互相争枪注龜力。 。 ` Anthropic: 、 。 。长时代理策略 Anthropic 直接指出:长时代理需要不断展与压上下文。不断策展信息筛选压缩上下文立净内存数据来源: https://www、*
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-20.jpg]]
---
### 上下文状态由什么组成
页码:`page-21.jpg`
上下文状态由什么组成上下文状态组成系统指令定义高优先级规则。孑历史回@ 完整的交互记录。 0 工具决定模型看见哪些动作可能性。摘要精炼的关键信息。 ?乙 外部数据提供世界知识。长期状态持久记忆与个性化。 O 蚴模型入 0 一动作 响应在多轮代理里,真正进入模型判断的不只是聊天记录。数来源: https://www.anthropic.com/engineering/effective-context-engineering-for-ai-agents
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-21.jpg]]
---
### 为什么上下文会“腐烂”
页码:`page-22.jpg`
为什么上下文会“腐烂”么卧上下文腐烂一, vs 、 一上下文腐烂是今明确目新鮮。越长的会话越容易出现辶状态漂移、通漏、过时规则残留和局部模式俣旧指令可能遮蔽新目标。冗长历史会让穫型把局部线索误当全局事实。 。越长的会话越容易出现状态漂移、違、过时规则残留和局聾式课。旧指令可能遮蔽新目标。 。冗长历史会让樓型把局部线索误当全局事实。随着时间推移,上下文质量下降 @ 数握来源: htfps //wwwnnthr叩ic.com/engineering/effective-context-engineering-for-ai-agents 乜时“腐对上下
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-22.jpg]]
---
### 上下文工程是内核,驾驭工程是外壳
页码:`page-23.jpg`
上下文工程是内核驾驭工程是外壳飞上下文与 Harness 区别 · 我的判断是: context engineering 管“喂给模型什么” · 前者解决状态供绐。 · 后者解决状态之外的契约、权限、回滚、审计和熵控内核与操作系统外壳的分层图外郜交互与訾控外壳驾驭工契约与奴限外部交互与管筏回与版本控制、数与状态流向模型 管蛤摟型什么”解决状共蛤《 0 》审计与监 \ 崆制与隐足性内核 (Core) :上下文工程 (Context Engineering) 知 2026 年 3 月 26 日
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-23.jpg]]
---
### 第三部分:智能体工程过渡
页码:`page-24.jpg`
第三部分刂智倻工智能体工程过渡当模型开始带工具、多轮行动并动态选择路径,问题就从“ " 变成“工作流 " 任分稱 0 划,皿、丿司动态选径工作流 @ 清新研究团队丨 2026 年 3 月 26 日
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-24.jpg]]
---
### 智能体工程:工作流
页码:`page-25.jpg`
智能体工程 0 工作流智能体工程定义工作流画布一, Guardrails 安全护栏记忆 / 知识。 OpenAI 把 agents 定义为能从简单目标走到复杂开放式工作流“ · 智能体工程的关注点是让模型动起来。其核心对象包括模型、工具、记忆 / 知识、 guardrails 、控制流“控制流数据源: https://developers.openai.com/api!docs/guides/agents
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-25.jpg]]
---
### AnthropicWorkflow 与 Agent 不是一回事
页码:`page-26.jpg`
Anthropic: Workflow 与 Agent 不是一回事 workflow vs agent Workflow (预定义代码路径) Anthropic 的区分非常关键: workflow 走预定义代码路径 ' 前者更可预测。定性流程图 (Deterministic Flowchart) Sturt Step 1 0 1 dition Step 2 2 No Step 3 (步 0 3 End )数据来源: Agent (动态决策路径)后者更灵活,也更难验证和治理。 Decision? Environment 惭境)动态决路径 (Dynamic Decision path) https://www anthropic.com/enginæring/building-effective-agents
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-26.jpg]]
---
### OpenAI Agent 架构的六个要件
页码:`page-27.jpg`
OpenAI Agent 架构的六个要件 Agent 架构 Agent 不是只有模型这说明 agent eng i neering 已经是一套系统工程。单个模型再强,也需要被放进工作流与保护层。模型 LLM/Core APIs/Functions 0 guardrails Safet /Poli 知识 Memo /Retrieval 逻辑 Reasonin Plcnni 评测 Evaluation/Testing 数据来源: https://developers.openai.com/api/docs/guides/agents
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-27.jpg]]
---
### 工具不是 API 包装,而是给 Agent 的动作契约
页码:`page-28.jpg`
侄具不是 API 包装,而是给 Agent 的动作契约工具设计工具面板 / ' · Anthropic 反复强调 动作契约 0 0 ' 00@夢 0 工具需要被当成“给非确 0 - AgenV (Action Contract) 0 丰富信返回上下文理纭采 (Return Context) Token 效率优化输入输出,节省成本工具描述准确指引,明确能力定性代理看的软件契纟勺 " 来设计。 · 名字空间、返回上下文、 token 效率与工具描述都会影响表现。亻囫 0 数源 https://www.anthropicxom/engineering/writing-tools-for-agents@
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-28.jpg]]
---
### 为什么工具层开始从“直接调用”转向“写代码调用”
页码:`page-29.jpg`
为什么工具层开始从“直接调用”转向“写代码调用” MCP 与代码执行 0 Anthropic 在 MCP 文章中指出,直接工具调用会消耗上下文; 。 Agent 可以通过代码把复杂任务分解为更经济的执行路径。 0 工具定义 0 更强代理代码执行 MCP (Model Context ProtocoI) 核心价值艹厂囗囗囗复杂任务分解精确检索与执行数扌居 源: https //www anthropic.com/engineering/code-execution-with-mcp
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-29.jpg]]
---
### 没有 eval 的 Agent只是会行动的黑箱
页码:`page-30.jpg`
没有 eval 的 Agent, 只是会行动的黑箱评测回路 | 身 Anthropic 在 eval 文章中强调匚 / 单轮。 “吧不足以覆盖长时代囗囗理 grader 生产监控、自动评测、 B 、人工审阅要形成多层防线。任务一反馈。代理 0 数来: https:hwww.anthropic.com/engineering/demystifying-evals-for-a卜agents 、一二《 《 《 《一一
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-30.jpg]]
---
### 第四部分:制度层
页码:`page-31.jpg`
4 制度层当提示、上下文、工作流都不够解释问题时,剩下的就是制度层。 @ 清新研究团队丨 2026 年 3 月 26 日
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-31.jpg]]
---
### 驾驭工程的严格定义
页码:`page-32.jpg`
驾驭工程的严格定义契约工具验证严格定义标契约高自治 AI 模犁记忆安全舒围绕高自治 AI 构建整套可持续执行环境一目标契约了@ 一一, 。目标不是让模型“会做事” 。它是系统级环境设计,而不是单点技巧集合。 x 、一一,一一 一一一一二一一一一一一 一 @清新研究团队 | 2026 年 3 月 26 日
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-32.jpg]]
---
### 为什么我把它定义为“操作系统层”
页码:`page-33.jpg`
为什么我把它定义为“操作系统层” 0 为什么是 OS 层 Agenth 统架构户愉入只是输入接囗操作系统分层图: Agent 世界对照因为它不只决定一次输出,而是决定任务如何被启动语言层只是输人接口。工作流层只是动作编排。工作流排作盈引操作系统层( OS 层)核心:决宸任芳如何被启动只是动作苤悱因为它不只决定一次輸出任务划权督理状记亿存实时监窪 A nt 执行与环境传操作系 OS 用户应用层 Shell/APlä 核 (OSE) 文件系統 / 调度件夤膊层 Agent 世界 OS 用户指令 / 应用 - 语盲 / 工作流口 OS 层 (Agent OS) 任身观划与拽行能力与衩记亿与状态訾理行力监与安全执环境与工具 @ 新研壳团队 | 2026 年 3 月 26 日
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-33.jpg]]
---
### 它不是替代提示词工程,而是对它的上卷
页码:`page-34.jpg`
它不是替代提示词工程,而是对它的上卷,不是替代关和而是对它的上卷驾驭工程 Age nt Prompt ResuIt Context Prompt · 因此 "prom 死”这种说法并不成立。 真正的变化曰 rompt 不再是全部,驾驭工程把 prompt 、 context 、 agent 而刂度层中的一个部亻。全部吸纳进去清新研究团队丨 2026 年 3 月 26 日
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-34.jpg]]
---
### 六个负重部件总览
页码:`page-35.jpg`
六个负重部件六大负重部件总览本报告把驾驭工程拆成六个必须被工程化的负重部件。 1 机器可验证的完成契约 CONTRACT g-O · 机器可验证的完成契约。 4 [Component 4 Name] · [Brief description Of component 4 ] 2 DurabIe KnowIedge 的 System of Record 0 REC · durable knowledge 的 system Of rec•• 5 CComponent 5 Name] · [Brief description Of component 5 @ 清新研究团队丨 2026 年 3 月 26 日 3 、 [Component 3 Name] 0 · [Brief description Of component 3 ] 6 [Component 6 Name] · [Brief description Of component 6
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-35.jpg]]
---
### 部件一:完成定义必须可机器验证
页码:`page-36.jpg`
部件一:完成定义必须可机器验证 0 完陇契约清单 .Com letion Contract Checklist) 团队原创定义 0@ 1 输出格 (Output Format) 一预定数据结掏与相式范 2 工具使用仃 00 | Usage) 一指定工具调用与交互流程 3 停止条件 (Stopping Conditions) 一明确终止触发与边界倩况 4 验收方法 (Acceptance Methods) 一自动化测试与正准则 SON ERROR 。 OpenAl 的提示指导和 Codex 实践都把 "what done 灬不是漂亮回答,而是可验证完成。 -p ,拳一孑 Done ” 0 。契约里应包含输出格式、工具使用、停止条件和验收方法。数据来溽: https://develogærs.openai.com/api/docs/guides/prompt-guidance/ https://openai.com/index/harness-engineering/
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-36.jpg]]
---
### 部件二:知识必须成为 system of record
页码:`page-37.jpg`
部件二一个巨大的 AGENTS.md 团队原创定义知识必须成为 s stem of record 仓库 GoogIe DOCS 对 Agent 来说,不在仓库里的 Google Docs 部件二知识必须可发现知识必须可验证知识必须可维护数源: https//openai.com/index/harness-engineering/ https://www.anthropic.com/engineering/effective-context-engineerirg-for-ai-agents
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-37.jpg]]
---
### 部件三:必须给 Agent 真正的感官和手脚
页码:`page-38.jpg`
团队原创定义部件三:必须给 Agent 真正的感官和手脚 0 t 亠 00 囗 UI (浏览器)指标 (Metrics & Traces) Agent 日志 (Log) 终端 (Terminal & 测试) · 0penAI 给 Codex 接了 UI 、日志、指标和 traces · 只有能读 UI 、看日志、跑测试,代理才有资格自证完成。 · 仅靠读代码和口头声明,很难发现真实 bugo X @ https://www.anthropic.com/engineering/harness-design-long-running•apps
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-38.jpg]]
---
### 部件四:必须解决长时程失忆
页码:`page-39.jpg`
部件 四! ;必须解决长时程失忆《部件可长时任务不能只靠大上下文硬扛。 0 0 @进葭文件 git feature 团队原创定义关键是让状态可恢复、可交接、可继续。 Anthropic 的 [ 0n9 一 running harness 用长时任务不能只靠 0 大上下文硬扛。 0-0 0 关键是让状态可恢复、可交接、可继续。数提来源: https//www.anthropic.com/engineering/effective-harnesses-for-long-running-cgents https://wwwnnthropic.com/engineering/harness-design-long-nmning-apps 一 一一 一一一一一一 = 二二一
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-39.jpg]]
---
### 部件五:验证必须外置成回路
页码:`page-40.jpg`
Generator 、部件五:验证必须外置成回路部件五外部 evaluator 0 负责不相信主 agento 丶夕团以原创定义 valuator 'Playwrigh@P 加黿怙@ 冶同式 d 数据来源 p § 凹山四些国在四!些 gg / 《 ;匹, https://www.anthropic.com/engineering/demystifying-evals-for-ai-aqents
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-40.jpg]]
---
### 部件六:边界、沙箱与熵控制必须机械化
页码:`page-41.jpg`
部件六:边界、沙箱与熵控制必须机械化部件八 lnput C0de & Data 0 沙箱 lint 彡风格 (Style) 风格、架构和安全不能只存在于人腌审美里。要把 taste 、 risk 和架构 governance 写进 lin••• (Architecture) 一安全 (Security) taste - risk governance Approved 团队原创定义 90 / 100 质量分 OpenAI 用 lint 回收站数来源: https://openai.com/index/harness-engineering/; https://www.anthropic.com/engineering(claud&éödé-sandboxing
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-41.jpg]]
---
### 驾驭工程最深一层是注意力工程
页码:`page-42.jpg`
驾驭工程最深一层是注意力工程 0 0 0 HUMAN TIME & ATTENTION 訓亠 0 正稀缺资 ' 0 HIGH AI CAPABILITY 匡 00 驾驭工程的真正目标不是把 AI 变得更像人。低价值环节可井行妊务自动纠针刈 M 姓 0 VALUE CREATION 目标 0 0 0 一 0 OpenAl 明确说,真正稀缺趵是 human time and at 人类注意力漏斗 0 而是把人从低价值、可并行、可自动纠错环节中抽离》始意力创造性工作; ' 战略决策核心价值创造自动化过滤 & AI 辅助鼓据来源: ht:ps://openücom/index/harness engineering/
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-42.jpg]]
---
### 人的角色发生了什么变化
页码:`page-43.jpg`
人的角色发生了什么变化角色变化 BEFORE: 表达者 ()x resser) " “ 0 、 @》乸》 。在提示词工程里, e 四 ee 疗四人主要是表达者;提示词工程。人的工作抽象层上模糊目标伊 Goal) Focus cra 厑 9 叩 u 区 specific outputs. 又@ 清新研究团队 AFTER: 设计者 & 抽象层上移。要把模糊目标翻译成 acceptance criteria; · 人的工作重点转向系统设计与评估。 = acceptance criteria (验收标准) Focus 虎 9 system behavior and 諂毹 e 忉 e 忉 2026 年 3 月 26 日
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-43.jpg]]
---
### 驾驭工程真正要求的是组织能力,不只是模型能力
页码:`page-44.jpg`
驾驭工程真正要求的是组织能力,不只是模型能力组织能力真正稀缺的,不再是会不会写 prompt ,而是能不能把人类判断制度化产品( Product) · 需求 & 定义蚴。价值发现实台理 (Governance) 0 。合规 & 风险组织能力协同引擎工程 (Engineering) 蛉。构建 & 实施。技术卓越 0 运营 (Operations) | · 维护 & 优化 · 持续改进 t · 标准制定。组织需要产品、工程、治理、运营协同。 · 单点高手可以做 demo ,系统化团队才能做长期稳定生产。 @ 清新研究团队 ] 2026 年 3 月 26 日
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-44.jpg]]
---
### GIS 极客尾图
页码:`page-45.png`
GIS
![[清华大学 驾驭工程 Harness Engineering 研究报告.hires/page-45.png]]

File diff suppressed because one or more lines are too long

View File

@@ -1,12 +0,0 @@
---
source: 知乎专栏
url: https://zhuanlan.zhihu.com/p/2033520572144030920
date_saved: 2026-05-02
tags: [zhihu, inbox]
---
# 知乎专栏文章p/2033520572144030920
**链接:** [https://zhuanlan.zhihu.com/p/2033520572144030920](https://zhuanlan.zhihu.com/p/2033520572144030920?utm_psn=2033977981434114693)
> 待阅读。文章内容因知乎反爬保护未能自动抓取,请手动打开链接查看。