教程 / 实践龙井Agent2026-04-01
View Original

2小时速通 Harness 工程:如何从零搭一套 Claude Code 智能体系统

原文: 微信公众号 龙井Agent · 龙井Agent · 2026-04-01 分类: 教程 / 实践 参考项目: shareAI-lab/learn-claude-code


概述

基于 GitHub 项目 learn-claude-code 的 12 章节,从零到一用 Harness 工程搭建一个类 Claude Code 的 Agent 系统。核心观点:别去"开发"智能体,去给它造一个好用的工作环境。

核心理念

Harness = 工具 + 知识 + 上下文管理 + 权限边界

模型是司机,Harness 是车。你不需要教司机怎么开车,你只需要造一辆好车。

12 课速览

阶段 课节 内容 解决的问题
让它跑起来 S01 一个循环(Agentic Loop) 智能体能运转了
S02 工具箱 + 围栏 能干活,也有边界了
让它干得好 S03 Todo 清单 防止注意力漂移
S04 子智能体 上下文隔离与分工
S05 技能加载(Skill) 按需加载知识,启动时只给菜单
S06 三层上下文压缩 无限会话不爆
让它记得住 S07 任务系统(依赖图) 关机了任务还在
S08 后台任务 不傻等,异步并行
让它带团队 S09 组建团队 + 收件箱 多 Agent 分工协作
S10 通信规矩 关机要握手,大事要审批
S11 自治 自动认领任务,空闲自动关机
S12 Worktree 隔离 git worktree 独立分支,各干各的

关键设计洞察

Agentic Loop(S01)

起点只需 30 行代码:让智能体不断调用工具,直到它自己判断不再需要。后续 11 课都在这个循环上叠加机制,循环本身一行没变

工具箱设计(S02)

  • 注册机制:未注册的工具智能体看不见、用不了
  • 围栏机制:文件工具只能操作项目目录
  • 可扩展:加新工具不需要改循环代码

上下文压缩三道防线(S06)

  1. 自动衰减:3 轮前的工具返回内容替换为标记 [Previous: used read_file]
  2. 阈值压缩:token 超限 → 完整对话存磁盘 → 模型生成摘要替换历史
  3. 主动压缩:智能体自己觉得乱了,可以主动调用压缩工具

Skill 按需加载(S05)

  • 启动时:扫描所有 SKILL.md,只注入名称和描述(几十 token)
  • 执行时:调用 load_skill 才加载完整内容(几千 token)
  • 核心思想:启动时只给菜单,点菜时才上完整食谱

任务依赖图(S07)

每个任务一个 JSON 文件,三种状态(pending/in_progress/completed),blockedBy 列表管理依赖。任务完成后自动解锁下游任务。

多 Agent 协作(S09-S12)

  • 领导 Agent 创建队友,各自独立线程和循环
  • 文件夹收件箱实现消息传递
  • 请求-响应 + 唯一 ID 模式处理关机和审批
  • 自动认领:空闲时轮询看板,60 秒无活自动关机
  • git worktree 隔离:任务管"做什么",worktree 管"在哪做"

核心要点

起点是 30 行代码,终点是一个有工具、有记忆、有团队、能自治的完整系统。自始至终,循环那几行代码一行都没变过,变的全是 Harness。


本文基于龙井Agent公众号文章整理,原文详情请访问 龙井Agent 公众号。参考项目:learn-claude-code