☰
learn-claude-code 快速上手:17 节从零搭出 Claude Code 同款 Agent Harness
2026/9/29 7:39:36 网站建设 项目流程

learn-claude-code 快速上手:17 节从零搭出 Claude Code 同款 Agent Harness

【免费下载链接】learn-claude-codeBash is all you need - A nano claude code–like 「agent harness」, built from 0 to 1项目地址: https://gitcode.com/GitHub_Trending/an/learn-claude-code

一、为什么 if-else 管道走不远

如果你把几个大模型调用用 if-else 分支、节点图串成过"AI Agent",多半体会过:节点越加越多,系统却越来越脆,换个问法就答非所问,加一条规则就改坏另一条。learn-claude-code 就是冲着这个问题来的:它把 Claude Code 拆成 17 节渐进式小课,每节只加一个"运行环境"机制,每节代码都能直接跑。

这套仓库的底层判断很硬:模型的"智能"来自训练,不是你外面那套编排代码给的。用 if-else 硬堆规则树,等于指望胶水代码自己涌现出自主行为——不会。所以它不教你"编排 Agent",只教你搭 Harness(运行环境):工具、知识、观察渠道、行动接口和权限边界。

二、它是什么:一个把 Claude Code 拆成 17 节实验的教程仓库

一句话定义:learn-claude-code 是一门 Harness 工程教程,教你把"Agent 产品 = 模型 + Harness"里的后半部分亲手搭出来。

打个比方:模型是厨师,Harness 是厨房。灶台、刀具、动线、出餐口都得有人修,但菜是厨师炒的。仓库不训练模型,它只教你装修厨房,而且从毛坯开始一间间装修——第 1 节只有"一个循环加一条 bash 命令",最后一节才把整间厨房装齐。

图里画的是第 15 节的集成版:所有机制最终都收进同一个循环。这也是整门课的走向。

三、怎么运转:一条 while 循环,加上三个关键机制

最小 Agent 循环怎么搭:把"停不停"交给模型

第 1 节(s01_agent_loop/)回答"Agent 到底是个什么东西":其实就是一个死循环。循环怎么搭?把消息列表发给模型,模型若说"我要调工具",代码就执行工具、把结果装回消息列表再发回去;模型若不再调工具,循环结束。核心代码不到 10 行:

def agent_loop(messages): while True: response = client.messages.create( model=MODEL, system=SYSTEM, messages=messages, tools=TOOLS, max_tokens=8000) messages.append({"role": "assistant", "content": response.content}) if response.stop_reason != "tool_use": return # 执行每个工具,把 tool_result 装回 messages,继续循环

判断"该不该停"完全由模型的 stop_reason 说了算,代码不做第二次推理。工具只有一个 bash,但执行器里已经埋了最朴素的权限:危险命令黑名单直接拦截、120 秒超时、输出截断到 5 万字符。像打乒乓球——你只管把球打回去,什么时候收球由对方定。

加工具时循环一行不改:一张 dispatch 表

第 2 节(s02_tool_use)解决"工具从 1 个长到 5 个"的问题。机制就一张字典:工具名映射到处理函数,循环里原来写死的 run_bash 调用,换成按模型报的工具名查表执行。效果:新工具 = 新函数 + 字典里加一行,循环结构零改动。

更值得注意的是边界:五个文件类工具全部先过一个 safe_path 检查,路径一旦逃出当前工作目录就抛"Path escapes workspace"。权限不是外挂,而是直接焊在工具实现里,成本极低。

上下文快爆了怎么办:s08 的四层压缩

长任务跑一会儿,消息列表必然撑爆模型上下文。s08 的答案是"每次调模型前先过一道压缩流水线",从轻到重四层:

  • tool_result_budget:过大的工具结果直接落盘到 .task_outputs/tool-results/,消息里只留指针;
  • snip_compact:把中间段旧对话归档到 .transcripts/;
  • micro_compact:把旧的工具结果截短;
  • compact_history:前三层压不住、上下文超限,才用模型把历史总结成摘要。

好比整理书桌:先清便签、再收旧笔记,实在放不下才把整本笔记蒸馏成一页提纲。另外还留了后手——真被 API 报 prompt_too_long 时,被动压缩一次再重试。

往后走,课程把同一套思路扩到权限审批、钩子、记忆、任务系统、后台任务、定时触发、多 Agent 团队(任务用文件锁加原子替换认领,天然防抢)、MCP 插件、工作流编排和"独立评估员把关停止"的目标闭环。旧版 12 节课还在 agents/ 和 docs/ 里过渡保留,注意它的编号与现行 17 节对不上,新读者直接从 s01 读起即可。

四、跑起来:四个步骤跑通第一个 Agent 示例

依赖只有三个包(anthropic、python-dotenv、pyyaml,见 requirements.txt),配置见 .env.example。最短路径:

git clone https://gitcode.com/GitHub_Trending/an/learn-claude-code cd learn-claude-code pip install -r requirements.txt cp .env.example .env # 填两个必填项 python s01_agent_loop/code.py

需要关心的配置字段只有三个:

字段必填说明
ANTHROPIC_API_KEY是Anthropic 或兼容提供方的 API Key
MODEL_ID是.env.example 默认示例为 claude-sonnet-4-6
ANTHROPIC_BASE_URL否指向 Anthropic 兼容端点,MiniMax / GLM / Kimi / DeepSeek 均可

最后一个字段是刻意的:模型层从第一天就可换,Harness 与具体模型解耦。跑起来后是个交互式命令行,输入任务回车,它会自己跑 bash 命令直到答完,输入 q 退出。不想真调模型时,tests/ 里有 13 个测试文件,覆盖压缩、任务系统、团队运行时等机制,可离线核对行为。

五、边界之外:它不做什么,还能往哪走

先说清楚它不做什么:不训练模型,不做生产级部署,没有图形界面,也不给你一个"装完即用"的框架——它交付的是理解和手艺。适用面反而因此很宽:任何需要模型做复杂多步判断的领域,循环都长一个样,变的只是工具、知识和权限。想给自己的业务搭一套,照课程顺序把机制往自己领域里填就行。

延伸方向也有现成的:skills/ 目录是第 7 节技能加载的真实语料;web/ 子目录把整门课生成了带源码和模拟器的在线阅读站;读完想验证机制行为,直接翻 tests/。

厨房修到什么程度,厨师就能做出什么菜——把循环守住,把边界焊死,剩下的交给模型。

【免费下载链接】learn-claude-codeBash is all you need - A nano claude code–like 「agent harness」, built from 0 to 1项目地址: https://gitcode.com/GitHub_Trending/an/learn-claude-code

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询