learn-claude-code 深入解析:从 Agent Loop 到 17 节 Harness 工程课程
本文以 learn-claude-code 仓库的日语版 README(README-ja.md)为主体,系统梳理"Agent 产品 = 模型 + Harness"这一核心理论,并完整覆盖 17 节渐进式课程结构、快速启动命令、环境配置、旧版 12 节与新版 17 节的对照关系。读完本文后,你将能够理解 Harness 工程的五大组件与分工边界,独立跑通仓库中从 s01 到 s17 的全部可运行示例,并掌握一个 coding agent 从最小循环到目标闭环的完整构建路径。
一、核心论点:Agency 来自模型,而非外部代码
在接触任何代码之前,仓库首先确立了一个明确的分界:
Agency——感知、推理、行动的能力——产生于模型的训练,而非外部代码的组织方式。 但一个真正能运行的 Agent 产品同时需要模型与 Harness 两者:模型是司机,Harness 是车。本仓库教的是造车的方法。
Agency 从何而来
Agent 的核心是神经网络——Transformer、RNN、学习到的函数——经过数十亿次梯度更新,在行为序列数据上学会了感知环境、推理目标并发起行动。Agency 不是周围代码赋予的,而是训练赋予模型的。
历史里程碑印证了这一点:
- 2013 — DeepMind DQN 玩 Atari:单个神经网络仅接收原始像素与分数,学会 7 款 Atari 2600 游戏,全面超越既有算法,其中 3 款击败人类专家;2015 年扩展至 49 款游戏并达到专业测试员水平,发表于 Nature。没有游戏特定规则,没有决策树,只有一个从经验中学习的模型。
- 2019 — OpenAI Five 制霸 Dota 2:5 个神经网络在 10 个月内完成了 45,000 年 Dota 2 对局的自我对弈,在旧金山直播中 2-0 击败 TI8 世界冠军 OG,随后在公开竞技场 42,729 场对局中保持 99.4% 胜率。没有脚本化策略,没有预设团队配合——协作、战术与实时适应全部来自自我对弈。
- 2019 — DeepMind AlphaStar 精通星际争霸 II:AlphaStar 在非公开比赛中 10-1 击败职业选手,之后在欧洲服达到大-master 等级(90,000 人中的前 0.15%)。面对的是不完全信息、实时决策、以及远超象棋与围棋的组合动作空间。
- 2019 — 腾讯绝悟统治王者荣耀:2019 年 8 月 2 日在世界冠军杯中 5v5 击败 KPL 职业选手;1v1 模式下职业选手 15 战仅 1 胜且无法存活 8 分钟。训练强度:1 天相当于人类 440 年。没有手写英雄克制表,没有脚本化阵容。
- 2024–2025 — LLM Agent 重构软件工程:Claude、GPT、Gemini 等在全人类代码与推理语料上训练的大语言模型,以 coding agent 形态被部署:读取代码库、编写实现、调试故障、团队协作。架构与上述所有 Agent 完全相同——被训练的模型放入环境,配备感知与行动的工具。唯一区别在于所学内容的规模与任务的通用性。
所有里程碑指向同一事实:Agency 是训练获得的,不是代码组装出来的。 但每个 Agent 都需要运行环境:Atari 模拟器、Dota 2 客户端、星际引擎、IDE 与终端。模型提供智能,环境提供行动空间,两者齐备才构成完整的 Agent。
什么不是 Agent
"Agent" 一词已被整个"提示词管道"产业劫持:拖拽式工作流构建器、无代码 "AI Agent" 平台、提示词链编排库。它们共享同一个幻想——把 LLM API 调用用 if-else 分支、节点图、硬编码路由逻辑串起来就是"构建 Agent"。
不是。那只是鲁布·戈德堡机器——过度设计的脆弱程序化规则流水线,LLM 只是被塞进一个美化的文本补全节点。用程序化逻辑堆叠来硬造智能(巨大的规则树、节点图、链式提示词瀑布),然后祈祷足够的胶水代码能涌现出自主行为——不会。这些系统生来即死:脆弱、无法扩展、从根本上无法泛化。它们是 GOFAI(经典符号 AI)的现代翻版——学界几十年前已放弃的符号规则系统,刷了一层 LLM 的漆再次出现。
心智转换:从"开发 Agent"到"开发 Harness"
说"我在开发 Agent"时,实际含义只有两种:
- 训练模型:用强化学习、微调、RLHF 等基于梯度的方法调整权重,收集任务过程数据(真实领域中感知-推理-行动的实际序列)来塑造模型行为。这是 DeepMind、OpenAI、腾讯 AI Lab、Anthropic 在做的事,也是最本质的 Agent 开发。
- 构建 Harness:为模型编写运行环境的代码。这是大多数人(包括本仓库)在做的事。
Harness 是 Agent 在特定领域工作所需的一切:
Harness = Tools + Knowledge + Observation + Action Interfaces + Permissions
Tools: 文件 I/O、Shell、网络、数据库、浏览器
Knowledge: 产品文档、领域资料、API 规范、风格指南
Observation: git diff、错误日志、浏览器状态、传感器数据
Action: CLI 命令、API 调用、UI 交互
Permissions: 沙箱、审批工作流、信任边界
模型做决策,Harness 执行;模型做推理,Harness 提供上下文。模型是司机,Harness 是车。对 coding agent 而言,Harness 就是 IDE、终端与文件系统;农业 Agent 的 Harness 是传感器阵列、灌溉控制与气象数据流;酒店 Agent 的 Harness 是预订系统、客人通信渠道与设施管理 API。Agent 是跨领域通用的,Harness 随领域而变。
Harness 工程师的五大职责
如果你在读这个仓库,你大概率就是一名 Harness 工程师。你的真正工作是:
- 实现工具:给 Agent 双手——文件读写、Shell 执行、API 调用、浏览器控制、数据库查询。每个工具都是 Agent 在环境中可执行的动作,应设计为原子化、可组合、描述清晰。
- 策划知识:给 Agent 领域专业性——产品文档、架构决策记录、风格指南、合规要求。按需加载(s07 节),而非预塞。Agent 应知道什么知识可用,然后自己取用。
- 管理上下文:子 Agent 把明确的工作放到另一条消息列表里;上下文压缩(s08)缩短旧历史;任务系统(s10)把目标持久化到单一会话之外。
- 控制权限:给 Agent 边界——文件访问沙箱、破坏性操作审批、Agent 与外部系统间的信任边界。这是安全工程与 Harness 工程的交叉点。
- 收集任务过程数据:Agent 在你的 Harness 中执行的每个动作序列都是训练信号。生产部署中的感知-推理-行动轨迹,是微调下一代 Agent 模型的原材料。
你不是在写智能,而是在构建智能居住的世界。这个世界的质量——Agent 能多清晰地感知、多准确地行动、可用的知识有多丰富——直接决定智能能多有效地表达自己。
做一个好 Harness。Agent 会完成剩下的事。
二、为什么选 Claude Code 作为解剖对象
Claude Code 是被拆解对象的原因在于它是所见过的最优雅、完成度最高的 Agent Harness——不是因为某个巧妙的技巧,而是因为它不做什么:不试图自己变成 Agent,不强行塞入僵化工作流,不用精巧的决策树对模型做二次推理。它提供工具、知识、上下文管理、权限边界——然后让路。
把 Claude Code 剥到本质:
Claude Code = 一个 agent loop
+ 工具 (bash, read, write, edit, glob, grep, browser...)
+ 按需 skill 加载
+ 上下文压缩
+ 子 Agent 派生
+ 带依赖图的任务系统
+ 异步邮箱的团队协调
+ 绑定任务的 worktree 并行执行
+ 权限治理
这就是全部。这就是全部架构。每个组件都是 Harness 机制——Agent 所居世界的一部分。Agent 本身是 Claude,是模型。不是 Harness 让 Claude 变聪明,而是 Harness 给了 Claude 手、眼与工作台。
这正是把 Claude Code 作为教材的原因:它展示了信任模型、把工程努力集中在 Harness 上会发生什么。 本仓库的每个会话(s01–s17)逐一分解 Harness 机制,最后再组装回去。课程教义不是"抄一遍 Claude Code",而是:最好的 Agent 产品,出自理解自己做的是 Harness 而非 Intelligence 的工程师。
三、核心模式:最小 Agent Loop
THE AGENT PATTERN
=================
User --> messages[] --> LLM --> response
|
stop_reason == "tool_use"?
/ \
yes no
| |
execute tools return text
append results
loop back -----------------> messages[]
最小循环。所有 AI Agent 都需要这个循环。
模型决定调用工具还是停止,代码只负责执行模型的请求。
本仓库教的是围绕这个循环构建 Harness 的一切。
对应的核心代码模式(README-ja.md 原文收录):
def agent_loop(messages):
while True:
response = client.messages.create(
model=MODEL, system=SYSTEM,
messages=messages, tools=TOOLS,
)
messages.append({"role": "assistant",
"content": response.content})
if response.stop_reason != "tool_use":
return
results = []
for block in response.content:
if block.type == "tool_use":
output = TOOL_HANDLERSblock.name
results.append({
"type": "tool_result",
"tool_use_id": block.id,
"content": output,
})
messages.append({"role": "user", "content": results})
每个会话围绕这个循环拆讲一个 Harness 机制:s15 把累积的运行时重新整合,s16 与 s17 分别单独处理 Workflow 编排与目标闭环。循环属于 Agent,机制属于 Harness。
源码实证:s01 的真实实现
模式不是纸上谈兵。s01_agent_loop/code.py 完整实现了上述循环,其中值得注意的工程细节(agent_loop 实现):
- 唯一的工具是
bash,system prompt 只有一句话:"You are a coding agent at {cwd}. Use bash to solve tasks. Act, don't explain."; max_tokens=8000,输出上限内控制单轮规模;- 退出条件仅一条:
response.stop_reason != "tool_use"即返回,把"何时停止"完全交给模型; - 工具结果以
user角色的tool_result块回灌messages,循环继续。
而 run_bash 执行器 展示了 Harness 侧最朴素的权限治理:
def run_bash(command: str) -> str:
dangerous = ["rm -rf /", "sudo", "shutdown", "reboot", "> /dev/"]
if any(d in command for d in dangerous):
return "Error: Dangerous command blocked"
r = subprocess.run(command, shell=True, cwd=os.getcwd(),
capture_output=True, text=True, timeout=120)
out = (r.stdout + r.stderr).strip()
return out[:50000] if out else "(no output)"
危险命令黑名单拦截、120 秒超时、输出截断至 50000 字符——这三条就是最小子 Agent 的第一层边界,也是 s03(Permission)、s04(Hooks)要系统化的雏形。
源码实证:s02 的 dispatch map 演进
s02_tool_use/code.py 验证了 s02 的口号——"加工具只需加一个 handler":循环形态与 s01 完全相同,仅把硬编码的 run_bash 调用换成 TOOL_HANDLERS 分派表:
TOOL_HANDLERS = {
"bash": run_bash, "read_file": run_read, "write_file": run_write,
"edit_file": run_edit, "glob": run_glob,
}
# s01: output = run_bash(block.input["command"])
# s02: output = TOOL_HANDLERSblock.name
工具从 1 个增至 5 个(bash、read_file、write_file、edit_file、glob),每个文件类工具都经过 safe_path 做工作区逃逸检查(path.is_relative_to(WORKDIR),越界即抛 Path escapes workspace)——权限边界以极小成本嵌入工具实现。
四、17 节课程结构与全节清单
17 个渐进会话,从简单循环到目标闭环的 Harness。每个会话增加一个 Harness 机制,每个机制有一句座右铭:
s01 "一个循环 & Bash is all you need" —— 1 个工具 + 1 个循环 = 一个 Agent
s02 "加工具只需加一个 handler" —— 循环不变,新工具注册进 dispatch map
s03 "先定边界,再给自由" —— 判断该放行、拦截还是问用户
s04 "在循环外挂钩子,不重写循环" —— 制造不改主循环即可扩展的入口
s05 "没有计划的 Agent 是走一步看一步" —— 先写下步骤,再执行
s06 子任务给一份新的
messages[],最终文本作为一个 tool result 返回s07 "需要的知识在需要时加载" —— Skill 先只给目录,需要时展开
s08 "上下文总会溢出,得有腾地方手段" —— 4 级压缩先整理工具结果,超限再摘要历史
s09 "该记的记,该忘的忘" —— 选择 / 提取 / 整理三个子系统
s10 "大目标拆小任务、排序、写盘" —— 文件式任务图,多 Agent 协作的地基
s11 "慢操作扔后台,Agent 继续想下一步" —— 后台线程跑命令,完成时注入通知
s12 "按时间表触发,不靠人手动" —— 到点自动启动任务
s13 "一个人干不完就找队友" —— 常驻队友协作、认领可执行任务、使用任务绑定的工作目录
s14 "能力不够?MCP 插件" —— 外部工具接入同一工具池
s15 "机制很多,循环只有一个" —— 把课程机制收回一个 Harness
s16 "编排固定就固化成代码" —— 已保存的 Workflow 从 journal 恢复执行
s17 "该不该结束由目标说了算" —— 每个停止候选由独立 evaluator 复核,不可行 / 失败 / 达继续上限时交还控制权给用户
学习路径:七阶段主线
主线是:能动 → 能干复杂活 → 能记能恢复 → 能长跑 → 能协作 → 能扩展与集成 → 能编排与收尾:
| 阶段 | 主题 | 覆盖会话 |
|---|---|---|
| 阶段 1 | Agent 动起来(从简单到复杂) | s01 Agent Loop、s02 Tool Use、s03 Permission、s04 Hooks |
| 阶段 2 | 干复杂的活 | s05 TodoWrite、s06 Subagent、s08 Context Compact |
| 阶段 3 | 跨会话记忆 | s09 Memory |
| 阶段 4 | 长时运行任务 | s10 Task System、s11 Background Tasks、s12 Cron Scheduler |
| 阶段 5 | 多 Agent 协作 | s13 Agent Teams(常驻队友 + 投递 + 协议、原子认领、任务绑定 Worktree) |
| 阶段 6 | 外部能力与集成 | s07 Skill Loading、s14 MCP Plugin、s15 Integrated Harness |
| 阶段 7 | 编排与目标完成 | s16 Workflow Runtime、s17 Goal Loop |
全 17 节清单
| 会话 | 主题 | 关键概念 |
|---|---|---|
| s01 | Agent Loop | messages / while True / stop_reason |
| s02 | Tool Use | TOOL_HANDLERS / dispatch map / 并发性 |
| s03 | Permission | PermissionRule / 审批流水线 |
| s04 | Hooks | PreToolUse / PostToolUse / 扩展点 |
| s05 | TodoWrite | TodoItem / 先计划再执行 |
| s06 | Subagent | 新的 messages[] / 上下文隔离 |
| s07 | Skill Loading | SkillLoader / 目录 / 按需注入 |
| s08 | Context Compact | budget / snip / micro / summary 四步 |
| s09 | Memory | selection / extraction / consolidation |
| s10 | Task System | TaskRecord / blockedBy / 磁盘持久化 |
| s11 | Background Tasks | 线程执行 / 通知队列 |
| s12 | Cron Scheduler | 持久调度 / 会话级触发器 |
| s13 | Agent Teams | 常驻队友 / 原子认领 / 任务绑定 Worktree / 类型化协议 |
| s14 | MCP Plugin | 工具发现 / 命名空间 / 工具池组装 |
| s15 | Integrated Harness | 把 tools、runtime context、tasks、teams、scheduling、MCP 收进一个循环 |
| s16 | Workflow Runtime | 脚本化编排 / 生命周期事件 / journal 恢复 |
| s17 | Goal Loop | 目标门控 / 会话评估 / 自动继续 |
关于 s15 的整合,s15_integrated_harness/code.py 的规模可以说明集成度:单文件 3000+ 行,将 memory runtime、团队事件、MCP 工具、定时任务并入同一 Agent loop,并以一组显式常量管理运行时预算——DEFAULT_MAX_TOKENS = 8000、ESCALATED_MAX_TOKENS = 16000、CONTEXT_LIMIT = 50000、KEEP_RECENT_TOOL_RESULTS = 3、PERSIST_THRESHOLD = 30000(运行时常量定义)。这些数值与 s08 的四级压缩机制一脉相承:工具结果先被整理与截断,超限时历史才被摘要。
而终点 s17(s17_goal_loop/code.py)展示了目标闭环的最小形态:worker 模型不再调用工具只说明"这一轮想停",因此引入一个会话范围的 Stop hook——独立的 evaluator 读取整段对话判断完成条件是否成立,不成立就把未完成的工作送回同一个 agent loop。支持与 pytest tests 这类目标字符串配合运行(python s17_goal_loop/code.py "/goal pytest tests exits with code 0")。
五、版本状态:两条教程轨道并存
当前仓库共存两条教程轨道,这一点在检索旧资料时尤其重要:
- 现行轨道:根目录下
s01–s17。根目录s01_*至s17_*是新的正式版,也是当前推荐的阅读路径。每个会话包含默认英文 README、中/日译本(README.zh.md、README.ja.md)、可独立运行的code.py,以及按需附带的 SVG 图。 - 旧版迁移轨道:
docs/与agents/。保留旧 12 节版本,为既有读者和旧链接在过渡期内临时保留。
新读者应从 s01_agent_loop/ 一路读到 s17_goal_loop/。注意旧版与现行的会话编号并不一致,切勿混淆。
旧 12 节 → 现行 17 节对照表
| 旧 12 节版 | 现行 17 节版 | 主题 |
|---|---|---|
| 旧 s01 | 现行 s01 | Agent Loop |
| 旧 s02 | 现行 s02 | Tool Use |
| 旧 s03 | 现行 s05 | TodoWrite |
| 旧 s04 | 现行 s06 | Subagent |
| 旧 s05 | 现行 s07 | Skill Loading |
| 旧 s06 | 现行 s08 | Context Compact |
| 旧 s07 | 现行 s10 | Task System |
| 旧 s08 | 现行 s11 | Background Tasks |
| 旧 s09 | 现行 s13 | Agent Teams |
| 旧 s10 | 现行 s13 | Team Protocols |
| 旧 s11 | 现行 s13 | 自主任务认领 |
| 旧 s12 | 现行 s13 | 任务绑定 Worktree |
| 仅现行版 | s03、s04、s09、s12、s14、s15、s16、s17 | Permission、Hooks、Memory、Cron、MCP、Integrated Harness、Workflow Runtime、Goal Loop |
从对照表能看出两个结构性变化:旧版把团队相关主题拆成 s09–s12 四节,现行版收敛进 s13 一节并补充了自主认领与 Worktree 隔离;现行版新增的 8 节中,s03/s04(权限、钩子)补齐了安全面,s09/s12(记忆、定时)补齐了常驻面,s14–s17 则把"能力扩展"与"编排收尾"独立成课。
六、快速启动与环境配置
依赖安装
仓库 Python 依赖声明在 requirements.txt 中,仅三个包:
anthropic>=0.25.0
python-dotenv>=1.0.0
pyyaml>=6.0
其中 pyyaml 服务于 s13/s15 等涉及协议与配置文件的机制。
现行 17 节版运行方式
git clone https://gitcode.com/GitHub_Trending/an/learn-claude-code
cd learn-claude-code
pip install -r requirements.txt
cp .env.example .env # 编辑 .env,填入 ANTHROPIC_API_KEY
python s01_agent_loop/code.py # 从这里开始 —— 1 个循环 + bash
python s08_context_compact/code.py # 上下文压缩(较复杂的章节)
python s17_goal_loop/code.py # 终点:用目标关闭循环
.env 的关键字段由 .env.example 完整定义:
| 字段 | 必填 | 说明 |
|---|---|---|
ANTHROPIC_API_KEY |
是 | Anthropic 或兼容提供方的 API Key |
MODEL_ID |
是 | 默认示例为 claude-sonnet-4-6 |
ANTHROPIC_BASE_URL |
否 | 指向 Anthropic 兼容端点(MiniMax、GLM、Kimi、DeepSeek 等均提供该协议端点) |
值得注意的是 .env.example 内建了一张国际与大陆双区域的兼容提供方对照表(MiniMax、GLM/智谱、Kimi/月之暗面、DeepSeek 的 Base URL 与 MODEL_ID 取值),即课程从第一天起就假设 Harness 的模型层可以替换——这与"Agency 属于模型、Harness 与模型解耦"的主张一致。所有 code.py 的初始化片段都会读取该配置,例如 s01 的客户端初始化:load_dotenv(override=True) 后以 ANTHROPIC_BASE_URL 构造 Anthropic 客户端,MODEL = os.environ["MODEL_ID"]。
旧 12 节迁移版运行方式
python agents/s01_agent_loop.py
python agents/s12_worktree_task_isolation.py
python agents/s_full.py
其中 agents/s_full.py 是"把所有机制装进一个座舱"的参考实现(s01–s11 机制全集 + 每次 LLM 调用前的 microcompact / auto-compact / 后台通知排空 / 收件箱检查流水线),它不是教学章节,而是整合参考。
Web 平台
Web 平台从根目录课程生成内容,为 s16、s17 等提供阅读、源码、模拟器与架构视图。生成逻辑在 web/scripts/extract-content.ts:它扫描仓库根目录匹配 s\d{2}_ 前缀的章节目录、旧版 agents/ 与 docs/ 目录,产出到 web/src/data/generated/ 与 web/public/course-assets/。因此 web/package.json 中 dev 前挂有 predev: npm run extract,构建前同样先抽取:
cd web && npm install && npm run dev # http://localhost:3000
测试作为验证手段
仓库 tests/ 目录提供 13 个测试文件(如 test_compaction_tool_pairs.py、test_skill_loading.py、test_task_system.py、test_goal_loop.py、test_agent_teams_runtime.py、test_web_scenarios.py 等),覆盖压缩工具配对、技能加载、任务系统、目标闭环、团队运行时与 Web 场景——想核对某一机制行为时,可直接查阅对应测试而不必真实调用模型。
七、课程范围、项目结构与愿景边界
课程范围
这是一门从 0 组装 Harness 工程的课程:每节单独讲一个机制,s15 把累积运行时收回一个 Agent loop,s16 在这个 loop 上增加 Workflow 编排,s17 则不是另一个累积运行时,而是聚焦目标受控继续(goal-controlled continuation)的小工具池机制示例。
项目结构
learn-claude-code/
s01_agent_loop/ # 每节一个文件夹
README.md # 默认英文文档(完整叙述)
README.zh.md # 中文译本
README.ja.md # 日文译本
code.py # 可独立运行的代码
images/ # SVG 图
s02_tool_use/
...
s14_mcp_plugin/
s15_integrated_harness/
s16_workflow_runtime/
s17_goal_loop/ # 终点会话
agents/ # 旧 12 节可运行副本 + s_full.py
skills/ # s07 使用的技能文件
docs/ # 旧 12 节文档,过渡期保留
web/ # 从根目录课程生成
tests/
skills/ 目录是 s07 Skill Loading 的真实语料,其中 agent-builder/SKILL.md 的开篇哲学与全仓库主论断互为印证:"The model already knows how to be an agent. Your job is to get out of the way."(模型已经知道如何做 Agent,你的工作是别挡路。)
愿景:用真正的 Agent 填满宇宙
这不只关乎 coding agent。任何人类做复杂多阶段判断聚合工作的领域,都是 Agent 可以运行的领域——只要 Harness 正确:
房产管理 Agent = 模型 + 楼宇传感器 + 维护工具 + 租户通信
农业 Agent = 模型 + 土壤/气象数据 + 灌溉控制 + 作物知识
酒店运营 Agent = 模型 + 预订系统 + 客户渠道 + 设施 API
医学研究 Agent = 模型 + 文献检索 + 实验设备 + 协议文档
制造 Agent = 模型 + 产线传感器 + 质量控制 + 物流
教育 Agent = 模型 + 课程知识 + 学生进度 + 评估工具
循环永远相同,变的是工具、知识、权限。Agent = 模型(LLM)+ 被通用化的操作环境(Harness)。先填满一间工作室,然后是农场、医院、工厂,然后是城市,然后是星球。
姊妹教材:从"按需会话"到"常驻助手"
本仓库教的是一次性 Harness——打开终端、给 Agent 派活、干完关闭,下一次会话从零开始(Claude Code 的模型)。姊妹教材 claw0 证明了另一条路线:在同一个 agent core 上加两个 Harness 机制,Agent 就从"推一下动一下"变成"每 30 秒自己醒来找活干"——心跳(Harness 每 30 秒问一次"有没有事做")与 Cron(Agent 自己排定未来任务)。叠加多通道 IM 路由(13+ 平台)、持久上下文记忆与 Soul 人格系统后,Agent 从一次性工具变为常驻的个人 AI 助手:claw agent = agent core + heartbeat + cron + IM chat + memory + soul。两条轨道分工明确:learn-claude-code 覆盖 agent harness 核心(循环、工具、计划、团队、任务绑定 worktree),claw0 覆盖主动常驻 harness。
从理解到交付
完成 17 节后,你理解的是 Harness 工程的内部构造。README 同时指向同门的交付形态:Kode Agent CLI(开源 coding Agent CLI,npm i -g @shareai-lab/kode,支持 Skill 与 LSP,可连接 GLM / MiniMax / DeepSeek 等开放模型)与 Kode Agent SDK(作为独立库嵌入后端、浏览器扩展、嵌入式设备,避免每用户独立 CLI 进程开销)。
Agency 生于模型。Harness 让 Agency 落地。做一个好 Harness,模型会完成剩下的事。
Bash is all you need. Real agents are all the universe needs.
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0623
Hy4-previewHy4 preview 是由腾讯混元团队研发的新一代混合专家(MoE)旗舰模型。模型总参数量 770B,每个 token 激活 49B,主干共包含78层,第一层采用标准 FFN,其余 77 层均为 MoE 结构,每层包含 256 个路由专家与 1 个共享专家,每个 token 激活 top-8 路由专家及共享专家。主干之外原生内置 1 层 MTP(总参数量 10B,激活 0.7B)以支持投机解码。Python00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
GLM-5.3-FlashGLM-5.3-Flash (320B-A18B),是GLM-5系列的首个原生多模态模型。320B总参数,能力超过GLM-5.2Jinja00
Spark-X2.5-4BSpark-X2.5-4B 旨在让强大的 AI 更实用、更高效、更易获得。在广泛日常任务中表现强劲,涵盖对话、写作、翻译、推理、编码、工具调用以及智能体工作流,并在同等规模的开源模型中取得领先成绩。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00