这篇文章是 Agent-Harness 系列的第二篇,主包最近也是在做学校项目实践(测试agent)的项目经理,今天来探讨如何从一个项目经理的视角,利用 Harness Agent 搭建个人项目管理体系,实现无代码编程与智能提示词工程。

主包先用自己做文章发布项目作为例子,讲解本篇文章。

一、引言:项目经理的新角色

1.1 传统项目经理的痛点

作为一名项目经理,你是否经常面临这样的困境:

  • 文档撰写:项目计划、周报、会议纪要…大量重复性文档工作占据你80%的时间
  • 需求沟通:与技术团队反复确认需求细节,一个理解偏差就要重来
  • 进度跟踪:Excel表格、在线文档满天飞,信息同步永远滞后
  • 知识沉淀:做过项目的经验散落在各个角落,每次都从零开始

这些痛点背后,是一个核心矛盾:项目经理需要的是战略思考和决策,却被迫陷于执行层面的琐碎事务

1.2 AI时代的项目管理变革

2023年,ChatGPT横空出世,我们开始尝试用AI写文档、生成报告。但很快发现,单纯的对话式AI只能解决"一次性任务",无法形成稳定的工作流。

2024年,AI Agent概念崛起,我们看到了让AI成为"数字员工"的可能。然而,大多数团队在实践时遇到了新问题:

“让AI写一段代码没问题,但让它稳定地、可重复地完成一个完整工作流?太难了。”

1.3 为什么选择 Harness Agent

这正是 Harness Engineering 要解决的核心问题。

如果说 Prompt Engineering 解决的是"怎么和AI说话",Context Engineering 解决的是"AI需要知道什么",那么 Harness Engineering 解决的是"如何让AI稳定、可靠、可重复地完成工作"

作为一名个人项目经理,Harness Agent 可以成为你的:

  • 文档助理:自动生成项目文档,按你的风格模板输出
  • 需求分析师:帮你梳理需求,生成技术规格说明
  • 进度追踪器:定期汇总进度,生成可视化报告
  • 知识管理者:将项目经验沉淀为可复用的 Skill

更重要的是,这一切都可以通过无代码编程实现。


二、Harness Agent 是什么

2.1 Agent = 模型 + 框架(温故知新)

在上一篇文章中,我们提出了一个核心公式:

Agent = 模型 + 框架

模型是大语言模型本身,提供"智能";框架是围绕模型构建的执行环境,提供"能力"。

如果把模型比作一个聪明的大脑,框架就是给它配备的:

  • 双手(工具调用能力)
  • 眼睛(信息获取能力)
  • 记忆(上下文管理)
  • 规矩(权限和约束)

2.2 框架即操作系统:给模型一个"身体"

传统的程序开发,程序员写代码告诉计算机"做什么"。而 Agent 框架的核心理念是:

不写代码,而是配置一套"操作系统",让AI在这个系统中自主完成任务。

这套"操作系统"包含:

组件 类比 作用
Tools(工具) 应用程序 给AI操作外部世界的能力
Memory(记忆) 硬盘/内存 存储上下文和长期知识
Skills(技能) 专业软件 封装领域知识的可复用流程
Hooks(钩子) 自动化脚本 在特定事件触发验证和修正
Sub-agents(子代理) 专业员工 处理特定类型的子任务

2.3 个人项目经理的"数字分身"

当你配置好这套"操作系统",你就拥有了一个数字分身。它:

  • 理解你的工作习惯:通过 Memory 记住你的偏好
  • 执行你的工作流程:通过 Skills 复用你的成功经验
  • 遵循你的质量标准:通过 Hooks 自动验证输出
  • 可扩展可定制:通过配置文件调整,无需写代码

这不是科幻,而是现在就可以实现的。


三、核心概念辨析:Context Engineering vs Harness Engineering

这是本文最重要的一章。理解这两个概念的区别,是构建可靠 Agent 系统的关键。

3.1 AI工程的三层架构

2026年,AI工程界形成了一个共识:AI应用的质量取决于三个层次的努力。

在这里插入图片描述

3.2 Prompt Engineering:教AI怎么说话

解决的问题:如何用正确的措辞激活模型行为

核心工作

  • 结构化输出、思维链、角色设定
  • 少样本示例(Few-shot)
  • 将复杂请求拆解为有序步骤

示例对比

// ❌ 粗糙的 Prompt
prompt = "写一个项目计划"

// ✅ 工程化后的 Prompt
prompt = """你是一位资深项目经理,正在为一个移动应用开发项目撰写计划。

项目背景:
- 这是一个电商类App,预计3个月上线
- 团队规模:2名前端、1名后端、1UI设计师
- 预算:50万

请按以下结构输出项目计划:
1. 项目目标(SMART原则)
2. 里程碑规划(按周拆分)
3. 风险识别与应对策略
4. 资源分配建议

输出格式要求:使用Markdown,关键信息用表格呈现。"""

局限性

  • 无状态,按请求生效
  • 无法注入私有知识库
  • 无法处理跨会话记忆

3.3 Context Engineering:确保AI有足够信息

解决的问题:模型在决策时应该处于什么信息环境

核心工作

问题 解决方案
知识超出上下文窗口 RAG 和检索
模型与现实世界脱节 工具接入
模型无状态性 记忆系统(短期+长期)

关键洞察(来自腾讯云技术社区):

“好的 Agent 输出和差的 Agent 输出之间的区别,往往与原始请求的措辞无关,而取决于关键信号是否在正确的时刻出现在窗口内。”

3.4 Harness Engineering:构建可信赖的系统

解决的问题:出错后怎么办、怎么恢复

定义

约束 Agent 能做什么,告知它应该做什么,验证它是否正确完成,并在出错时纠正它。

核心理念

“每当发现 Agent 犯了一个错误,就投入时间设计一个方案,让它不再犯同样的错。”

重要证据

  • LangChain 未更换模型,仅改变 Harness,Terminal Bench 2.0 得分从 52.8% 升至 66.5%
  • OpenAI 构建百万行代码生产应用,零行人工代码

3.5 三层对比一览

维度 Prompt Engineering Context Engineering Harness Engineering
问题 怎么表达任务 模型应该处于什么信息环境 出错后怎么办、怎么恢复
作用 输入接口 信息供给 系统约束与验证
状态 无状态 有状态(记忆、检索) 反馈循环
失效表现 输出格式错误 幻觉、知识缺失 漂移、循环、破坏性操作
时间点 2023年 2025年 2026年

3.6 诊断框架:哪层出问题?

失败类型 问题所在 解决方案
输出格式错误 Prompt Engineering 优化提示词结构
代码库事实幻觉 Context Engineering 添加检索、更新知识库
选错工具 Context Engineering 优化工具描述、减少工具数量
长任务漂移 Harness Engineering 添加 Sub-agent
破坏性操作 Harness Engineering 添加权限 Hook
静默失败 Harness Engineering 添加验证 Hook

3.7 为什么两者缺一不可

Context Engineering 决定AI"知道什么",Harness Engineering 决定AI"能做什么"。

一个优秀的 Agent 系统,需要两者协同:

在这里插入图片描述


四、无代码编程:让AI成为你的开发团队

4.1 什么算无代码?

在 Agent 语境下,"无代码编程"指的是:

通过配置文件(YAML、Markdown)而非传统代码来定义 Agent 的行为和能力。

你不需要学习 Python、JavaScript,只需要:

  • 编写 Markdown 格式的 Skill 文件
  • 配置 YAML 格式的 Agent 元数据
  • 用自然语言描述你想要的工作流

4.2 Skill 编写:最简化的"编程"(编写过程看我之前发的skill文章)

Skill 的本质:将一次成功的任务执行经验固化为可复用的标准化流程。

一个最简单的 Skill 文件:

---
name: weekly-report-generator
description: 生成项目周报,包含本周进展、下周计划和风险项
---

# 周报生成器

你是一个项目周报撰写助手。

## 输入要求
从用户获取以下信息:
- 项目名称
- 本周完成事项(可从git commit提取)
- 下周计划事项
- 遇到的问题或风险

## 输出格式
按照以下模板生成周报:

## 【项目名称】第X周工作汇报

### 一、本周进展
- [事项1]:完成情况
- [事项2]:完成情况

### 二、下周计划
- [计划1]
- [计划2]

### 三、风险与求助
- [风险项]:建议解决方案

4.3 Agent 配置:组装你的团队(后续将出一篇详细记载做agent的过程,求关注)

创建一个自定义 Agent 同样简单。在 .codebuddy/agents/ 目录下创建文件:

---
name: project-manager
description: 项目管理助手,负责文档生成、进度跟踪、需求分析
tools: Read, Write, Bash(git:*), Grep
model: inherit
---

你是一个专业的项目管理助手,帮助用户处理项目相关的文档工作。

## 核心能力
- 项目文档生成(计划、周报、总结)
- 需求分析与规格说明撰写
- 进度跟踪与可视化

## 工作原则
1. 保持文档格式规范统一
2. 重要信息用表格呈现
3. 风险项主动提醒用户

4.4 实战:从想法到落地的全过程

假设你想搭建一个自动生成技术博客文章的工作流:

Step 1:明确需求

  • 输入:一个技术主题
  • 输出:符合CSDN风格的Markdown文章

Step 2:创建 Skill

  • 编写 csdn-publisher/SKILL.md
  • 定义文章类型、大纲生成、审查流程

Step 3:配置 Agent

  • 设置 allowed-tools:Read, Write, Grep, WebFetch
  • 加载相关 Skill

Step 4:测试验证

  • 用强模型(如 GPT-4、GLM-5)执行任务
  • 调整不满意的部分
  • 换弱模型验证 Skill 有效性

Step 5:迭代优化

  • 添加审查 Hook
  • 完善错误处理

整个过程,你只写了 Markdown 配置文件,没有写一行代码。


五、提示词工程的艺术

5.1 好提示词的黄金公式

经过大量实践,我总结出一个有效的提示词结构:

[角色定义] + [任务描述] + [约束条件] + [输出格式] + [示例]

角色定义:你是谁
任务描述:要做什么
约束条件:什么不能做
输出格式:结果长什么样
示例:给一个参考

5.2 System Prompt vs User Prompt

类型 作用 位置
System Prompt 定义Agent的身份、能力边界、行为准则 Skill文件或Agent配置
User Prompt 具体的任务请求 用户输入

最佳实践

  • System Prompt 保持稳定,定义"我是谁"
  • User Prompt 灵活变化,描述"要做什么"

5.3 多轮对话的上下文管理

Agent 的一个挑战是:对话越长,上下文越容易"漂移"。

解决方案

  1. 关键信息前置:重要约束放在提示词开头
  2. 定期重申:长对话中适时重复核心要求
  3. 使用 Sub-agent:超过15次工具调用,派给子代理
  4. Git 作为记忆:小而语义明确的提交,可追溯可回滚

5.4 常见提示词模板分享

模板一:文档生成类

你是一个专业的[角色],帮助用户撰写[文档类型]。

## 背景
[提供必要的背景信息]

## 要求
- 格式:[Markdown/表格/列表]
- 风格:[正式/轻松/技术向]
- 篇幅:[字数范围]

## 输出结构
1. [章节1]
2. [章节2]
...

## 示例
[给出一个期望输出的样例]

模板二:代码审查类

你是一位资深代码审查员,负责审查[语言/框架]代码。

## 审查维度
- 代码质量:命名、结构、复杂度
- 安全性:注入、权限、敏感信息
- 性能:算法效率、资源使用
- 可维护性:注释、测试覆盖

## 输出格式
### ✅ 优点
- ...

### ⚠️ 问题(按严重程度排序)
| 位置 | 问题 | 建议 |
|------|------|------|
| 文件:行号 | 描述 | 修复方案 |

### 💡 建议
- ...

六、高效技巧:网络社区验证的实践经验

本章整理了来自腾讯云、华为开发者社区、知乎、掘金等技术社区的实战经验分享,这些方法都经过大量用户验证,可作为你搭建 Agent 系统的参考清单。

6.1 每次犯错就设计一个方案

Harness Engineering 的核心理念:“每当发现 Agent 犯了一个错误,就投入时间设计一个方案,让它不再犯同样的错。”

这是一个简单但强大的原则:

Agent错误 设计方案
删除了不该删的文件 添加权限 Hook,禁止删除特定目录
输出格式不符合预期 在 Skill 中强调格式,添加输出验证
长任务中途"忘记"目标 使用 Sub-agent 分流,减少上下文污染
调用了不存在的API 添加工具可用性检查

6.2 验证 Hook:最高杠杆投入

来自腾讯云技术社区的建议:

“验证 Hook 是最高杠杆投入——每次 Agent 停止后运行 typecheck/lint。”

示例 Hook 脚本

#!/bin/bash
cd "$CLAUDE_PROJECT_DIR"

# 并行运行类型检查和格式化工具
OUTPUT=$(bun run --parallel \
    "biome check . --write --unsafe" \
    "turbo run typecheck" 2>&1)
    
if [ $? -ne 0 ]; then
    echo "$OUTPUT" >&2
    exit 2  # 退出码 2 重新激活 Agent 来修复错误
fi
# 成功:静默,不污染上下文

为什么是"最高杠杆"

  • 一次性配置,持续生效
  • 自动发现问题,无需人工干预
  • 形成反馈循环,持续改进

6.3 渐进式披露:Token优化之道

来自 CSDN 博主的分享:

“将详细内容移到链接文件,按需加载。150,000 token 工作流可减少到约 2,000 token。”

Skill 文件结构

---
name: complex-skill
description: 简短描述,不要在这里写所有内容
---

# 简要说明

具体工作流程参见 [详细文档](./references/detailed-workflow.md)
配置参数参见 [参数说明](./references/config.md)

原则

  • SKILL.md 只放核心信息
  • 详细内容放在 references/ 目录
  • 按需加载,避免上下文窗口过载

6.4 Sub-agent 分流长任务

来自腾讯云的建议:

“超过15次工具调用交给 Sub-agent,防止上下文腐化。”

长任务的危害

  • 工具调用结果堆积在上下文中
  • Agent 容易"忘记"原始目标
  • 输出质量下降

解决方案

主 Agent(项目经理)
    ├── 子 Agent A(数据收集)→ 返回摘要,不返回原始数据
    ├── 子 Agent B(内容生成)→ 返回结果
    └── 子 Agent C(审查校验)→ 返回审查报告

每个子 Agent 有独立的上下文窗口,不会污染主对话。

6.5 Git 作为 Agent 的原生记忆

“把 git 当作 Agent 的原生记忆,鼓励小而语义明确的提交。”

实践方法

原则 说明
小提交 每个提交只做一件事
语义化 commit message 清楚描述做了什么
可追溯 Agent 可以通过 git log 了解历史
可回滚 出错时可以轻松恢复

6.6 精简原则:只保留2-3个活跃MCP服务器

“工具描述膨胀是上下文饱和主因之一。”

问题:每个 MCP 服务器都会向 Agent 暴露工具描述,工具越多,上下文消耗越大。

建议

  • 只连接必要的 MCP 服务器
  • 定期清理不用的工具
  • 优先使用 Skill 封装工具调用

七、项目周期与安排:从零到落地的完整路线图

7.1 四阶段实施计划

阶段 时长 目标 产出
Phase 1:认知建立 1-2天 理解概念,搭建环境 能运行基本Agent
Phase 2:工具搭建 3-5天 创建核心Skill和Agent 2-3个可用的Skill
Phase 3:工作流设计 1周 整合Agent形成流水线 一个完整工作流
Phase 4:迭代优化 持续 根据使用反馈改进 不断完善的系统

7.2 Phase 1:认知建立(Day 1-2)

Day 1:了解概念

  • 阅读 Agent 基础知识(Prompt → Context → Harness)
  • 理解 Skill 和 Agent 的关系
  • 安装 CodeBuddy Code 或类似工具

Day 2:动手尝试

  • 运行一个简单的 Agent 任务
  • 观察 Agent 如何调用工具
  • 尝试修改一个已有 Skill

7.3 Phase 2:工具搭建(Day 3-7)

Day 3-4:创建第一个 Skill

  • 选择一个你最常做的工作(如周报生成)
  • 用最强模型执行一次
  • 将过程记录成 Skill

Day 5-6:配置自定义 Agent

  • 定义 Agent 的 tools 权限
  • 编写 System Prompt
  • 测试不同场景

Day 7:验证效果

  • 用弱模型测试 Skill 有效性
  • 识别需要改进的地方
  • 更新 Skill 文档

7.4 Phase 3:工作流设计(Day 8-14)

Day 8-10:识别工作流

  • 梳理你日常工作中的典型流程
  • 标注每一步需要什么工具、什么输入输出
  • 设计 Agent 之间的协作方式

Day 11-12:搭建工作流

  • 将复杂任务拆解为多个子任务
  • 为每个子任务配置 Sub-agent
  • 建立主 Agent 来协调

Day 13-14:联调测试

  • 用真实项目测试工作流
  • 记录遇到的问题
  • 优化协作逻辑

7.5 Phase 4:迭代优化(持续)

每周回顾

  • Agent 出错了什么?是否需要加 Hook?
  • Skill 是否需要更新?
  • 工作流是否可以简化?

每月总结

  • 统计 Agent 帮你节省的时间
  • 分享你的 Skill 库给团队
  • 探索新的使用场景

7.6 时间规划示意

Week 1          Week 2          Week 3+         ...
├───────────────┼───────────────┼───────────────┤
│ Phase 1-2     │ Phase 3       │ Phase 4       │
│ 认知+工具     │ 工作流设计    │ 持续迭代      │
│               │               │               │
│ 产出:        │ 产出:        │ 产出:        │
│ 2-3个Skill    │ 完整工作流    │ 优化+新场景   │
│ 1个Agent      │ Sub-agent协作 │ 团队分享      │

八、实战案例:搭建一套多Agent内容创作系统

8.1 案例背景

用户画像:独立技术博主,每周需要:

  • 1篇原创技术文章
  • 3-5条社交媒体内容
  • 月度知识回顾

痛点

  • 内容创作耗时,质量不稳定
  • 想法多,但落地少
  • 缺少系统的内容生产流程

8.2 三阶段实施策略

来自博客园分享的实战经验,多Agent协作系统的搭建需要分三阶段进行

Phase 1:各自打磨(Primary模式)

各领域 Agent 以 mode: primary 运行,可直接交互,逐步调教完善。

策略

  • 用最强模型(如 GLM-5、GPT-4)打通流程
  • 通过多轮交互调整,直到获得满意结果
  • 为每个领域积累对应的 Skill
Phase 2:模式转换(转为Subagent)

将验证成功的 Agent 改为 mode: subagent,通过 @agent-name 被主代理调用。

前提条件

  • 确保 Agent 流程跑通且稳定输出
  • Skill 库已建立完善
Phase 3:建立项目管理主代理

创建 “IC Project Manager” 主代理,负责理解需求、协调子代理。

图示

在这里插入图片描述

💡 提示:上述多Agent协作图建议在PC端查看,移动端可能出现排版错乱。

8.3 Agent 角色设计

Agent 1:内容研究员
---
name: content-researcher
description: 深入研究技术主题,收集素材和参考资料
mode: primary  # Phase 1
tools: Read, Grep, Glob, WebSearch, WebFetch
---

你是内容研究助手,负责为技术文章收集素材。

## 工作流程
1. 理解用户的主题需求
2. 搜索相关技术资料
3. 提取关键信息和引用
4. 整理成结构化的素材包

## 输出格式
### 素材包:【主题】

#### 核心概念
- [概念1]:解释
- [概念2]:解释

#### 参考资料链接
1. [标题](URL) - 核心观点摘要
2. ...

#### 可用案例
- [案例1]
- [案例2]
Agent 2:文案撰写员
---
name: content-writer
description: 根据素材包撰写技术文章,符合CSDN风格
mode: primary  # Phase 1
tools: Read, Write
---

你是技术文章撰写助手,负责将素材包转化成高质量文章。

## 写作原则
- 标题吸引眼球,包含关键词
- 开头有摘要,说明文章价值
- 章节结构清晰,三级标题
- 代码示例有注释
- 结尾有总结和拓展阅读

## 字数控制
- 精简版:1500-2000字
- 标准版:2500-4000字
- 深度版:5000-8000字
Agent 3:审查编辑
---
name: review-editor
description: 审查文章的语言质量、技术准确性和原创性
mode: primary  # Phase 1
tools: Read, Grep, WebSearch
---

你是文章审查助手,负责确保内容质量。

## 审查维度

### 1. 语言质量
- 语句通顺流畅
- 术语使用一致
- 无冗余表达

### 2. 技术准确性
- 概念正确
- 代码可运行
- 版本信息最新

### 3. 原创性
- 无直接复制
- 引用有标注
- 图片无版权问题

## 输出格式
### 审查报告

#### ✅ 通过项
- ...

#### ⚠️ 问题项
| 位置 | 问题 | 建议 |
|------|------|------|
| ... | ... | ... |

#### 评分
- 语言质量:X/10
- 技术准确性:X/10
- 原创性:X/10

8.4 Permission 精细控制

使用白名单策略精确控制 Skill 加载:

permission:
  skill:
    "*": deny           # 默认拒绝所有
    "content-*": allow  # 允许以 content- 开头的 Skill
    "blog-*": allow     # 允许以 blog- 开头的 Skill

# 注:不同 Agent 框架的字段名可能略有差异,请以实际框架文档为准

通配符的优势

  • 新 Skill 只需按命名规范创建,自动加载
  • 无需修改 Agent 配置
  • 可扩展性强

8.5 主代理协调示例

---
name: ic-project-manager
description: 内容创作项目管理主代理,协调子代理完成内容生产
mode: primary
tools: Read, Write
---

你是内容创作项目管理助手。

## 子代理团队
- @content-researcher:负责研究收集素材
- @content-writer:负责撰写文章
- @review-editor:负责审查校验

## 工作流程
1. 接收用户的内容创作需求
2. 派 @content-researcher 收集素材
3. 派 @content-writer 撰写初稿
4. 派 @review-editor 审查质量
5. 根据审查结果决定是否需要修改
6. 输出最终稿件

8.6 效果验证与持续优化

验证方法

  • 用弱模型(如 Kimi、MiMo)测试整套流程
  • 检查输出质量是否稳定
  • 观察子代理协作是否顺畅

持续优化

  • 记录每次失败的原因
  • 更新对应的 Skill 或添加 Hook
  • 定期回顾工作流效率

九、总结与展望

9.1 核心要点回顾

概念 要点
Harness Engineering 约束Agent能做什么、验证是否正确、出错后如何恢复
Context vs Harness Context决定"知道什么",Harness决定"能做什么"
无代码编程 通过Skill(Markdown)和Agent配置(YAML)定义行为
灵巧方法 验证Hook、渐进式披露、Sub-agent分流、Git记忆
项目周期 四阶段:认知→工具→工作流→迭代

9.2 最佳实践清单

  • 用最强模型打通流程,再记录成 Skill
  • 每次犯错就设计一个方案防止再犯
  • 验证 Hook 是最高杠杆投入
  • 超过15次工具调用交给 Sub-agent
  • 只保留2-3个活跃 MCP 服务器
  • 把 git 当作 Agent 的原生记忆
  • 先打磨单Agent,再构建多Agent协作

9.3 下期预告

下一篇文章,我们将深入探讨 Hooks 系统的实战应用

  • 如何编写一个有效的验证 Hook
  • Hook 的触发时机和参数传递
  • 实际案例分析:自动修复、自动提交、自动测试

参考资料

  1. Prompt、Context、Harness:AI Agent 工程的三层架构解析 - 腾讯云
  2. LLM Agent技能实战指南:构建专业级智能体的元工具 - CSDN
  3. opencode使用记录:自定义skill与自定义agent - 博客园
  4. 2025年末主流AI Agents开发平台及开源项目梳理 - Johng

本文首发于 CSDN,作者:Kingwu,系列文章:Agent-Harness

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐