我是如何用Claude Code打造通用AI Agent的
我是如何用Claude Code打造通用AI Agent的
我时常为Claude Code的易用性和可扩展性感到兴奋,他远不止是一个Code Agent,它是一种通用Agent框架设计,通过自然语言配置和扩展他能做很多事,事实上我已经把Claude Code作为我的私人助手和自动化员工了深入我的生活,写代码,整理文件,写文章,做自动化测试,生成AI工作流,甚至围绕着它打造了一套配置化通用Agent工作平台。这篇文章你将了解到:
-
Agent模型需要什么能力?
-
如何通过文件配置将Claude Code打造成生活助手?
-
从Claude Code我们能学到什么Agent的设计理念?
-
建RAG太复杂,不妨试试用文件系统,让Agent自行检索需要的信息?
-
如何定义Agent工具的设计原则?
-
Agent VS workflow,如何平衡LLM驱动和规则驱动?
-
Claude Code离通用可配置型自动化Agent还有多远?
最后我会将文章里提到的16个Claude Code和Agent的开源项目地址列出来供大家参考。
Agent模型时代
之前文章的我们分析过,Claude Code的工程设计是相当克制的,一个智能递归,做好工具接入和上下文工程。意图理解,任务拆解,工具的使用观察,上下文压缩这些核心能力都交由大模型主导。透过这个设计和实践共识,我们可以给Agent下个定义 –能够代理人多轮地调用工具完成任务。这个定义并不新鲜,早在1979年,侯世达的《哥德尔,艾舍尔,巴赫》里对于智能的阐述就有所提及。
毫无疑问,LLM模型已经成为这套Agent体系的核心。同时这也揭示了一个现象,当前部分模型已经进入到了Agent时代。模型即Agent这个概念已经得到了部分模型厂商认可。杨植麟认为Agent模型的核心能力应该是预测时对token进行规模化扩展,无论是通过多轮交互反馈的方式进行扩展,还是通过每轮增加更多token以获取更长思维链的方式进行,究其本质都是一种测试时扩展。
以Claude Code为例,多轮交互往往会产生几万甚至几十万的上下文,模型需要在这海量上下文里准确地进行扩展输出调度决策。这个过程充满挑战——模型需要决定什么时候输出token调用工具、下一步调用什么工具、调用的工具效果如何——这其中所需的能力远超传统chat模型单轮对话给文章润色输出几百token的简单场景。
要想做到模型即Agent,模型除了要有上述能力,还需要训练专门的智能体知识,比如对智能体工具的调用轨迹的模拟预判。长上下文窗口,长推理能力,知识广度这些也是Agent模型的必要支撑。
国内目前来看,kimi也在朝着专业工具Agent模型方向走,隐隐有打造中国版Claude之势。从体验来看,kimi-k2-0905版本也确实是国内体感最好,和Claude最接近的,无论是从它的上下文长度,context cache机制,还是思考深度,工具调用准确度上进行评判。
至少,在9月4号我的claude账号被封之后,还维持住了我90%的Claude Code使用体验,kimi最近还针对部分的用户推出了相当优惠的Agent会员订阅计划和福利活动,费用上也能得到很好的节省。
Claude Code的可配置参数
window环境可以直接设置系统变量来切换Claude Code使用国产模型:
ANTHROPIC_AUTH_TOKEN=sk-xxx
ANTHROPIC_BASE_URL=https://api.moonshot.cn/anthropic
也可以安装Claude Code Router
,Claude Code Proxy
等开源项目来切换。
除了前面这些方式,Claude Code也支持通过设置项目级settings.local.json的方式指定项目使用指定模型。
Claude Code的可配置项:
功能特性 | 配置路径 | 具体说明 |
---|---|---|
输出风格 | ~/.claude/settings.local.json | 替换整体提示词,定义Claude Code输出风格 |
环境变量 | ~/.claude/settings.local.json | 系统级环境变量和路径配置,如模型,API地址等 |
操作权限 | ~/.claude/settings.local.json | 限制可执行的操作或拒绝某些操作 |
MCP 集成 | ~/.mcp.json | mcp工具扩展 |
回调钩子 | ~/.claude/settings.local.json | 多个事件节点可触发的自定义脚本 |
具体的配置设置你可以查看Claude-Code-templates
这个项目,里面有几乎所有的claudecode配置文件模板。
Claude Code 的unix化的设计
Claude Code的易用性也来源于它的设计理念,unix化设计对Agent的任务与需求抽象隔离的特性也十分受用。
1.工具极简主义:降低Agent决策复杂度
每个工具专注单一职责,将复杂任务拆解为可预测的原子操作。这种设计让Agent的tool-calling决策树大幅简化——无需在功能重叠的复杂工具间权衡,直接选择最专精的工具即可。
2.模块化抽象和可组合性
-
简单工具组合调用 通过几个工具的组合使用,能够让claudecode更好地完成复杂任务,比如先通过list查找文件,再通过read读取文件内容,再通过update更新文件。这样的工具组合调用完成任务还有很多。
-
bash工具的抽象重写,继承unix工具链生态 对bash工具的抽象重写,即保障了系统的安全性,完整继承Unix系统40余年沉淀的系统管理工具链。通过权限最小化原则,实现进程管理、网络配置、文件操作等底层能力的可控暴露。
-
Agent即命令的元编程 将Claude本身抽象为可编程的命令单元,支持递归调用与自我修饰。
-
通过自然语言+命令如在目录下执行
claude -p "按名称整理文件夹"
实现自动完成整理任务并返回信息。这是一种元编程能力,使Agent能够动态执行任务,通过外部调度形成"命令生成命令"的自增强闭环。
3. 系统抽象:一切皆文件
文件系统最大特点就是基于统一文件抽象实现多类型资源的无缝访问。
-
长期记忆系统,文件系统对于Agent系统来说最大的好处,就是拥有了一套长期记忆系统,Agent随时可以通过工具获取他需要的上下文资源,支持Agent进行精准的状态恢复与任务续传。
-
目录层级安全设置,在安全性上,通过目录隔离机制,目录级工具权限也可以增强操作安全性,为Agent提供可预测的受控影响环境,。
-
可版本化、可编辑、可共享 的提示词工程资产,Claude Code将任务、配置、模板、规则、知识库 全部抽象为文件系统中的结构化文档,用户可通过编辑指定目录下文件,调整系统行为,这种设计也引进开源生态提供了便利,如开发流程上,目前github上出现了
SPEC
,BAMD
方法等一系列开源项目开发方法可进行引用。
定义上下文环境
Claude Code的上下文环境从形式上有提示词+工具反馈+知识库,获取上下文有两种方式自主探索完成任务所需的关键信息+事件驱动注入提示词。
1.文档即提示词
前文提到过Claude Code支持配置文件改变Agent行为:
~/claude.md
翻看各种Claude Code教程都会提到claude.md的重要性,这是因为claude.md会接在系统提示词之后,每次调用时都会注入到上下文里,最容易被模型关注到。~/.claude/outputstyle.md
目前Claude Code还支持通过在前文的setting.local.json启用outputstyle完全重写系统提示词。在保留Claude Code核心调用工具的能力同时将其改写成任何Agent,比如预设的教学风格,会将Claude Code改造为一个代码教学Agent。~/.claude/Agent/xx.md
允许你自定义Agent的人设,工具,行为和输出风格,并在隔离的上下文环境中使用这个Agent完成任务。~/.claude/command/xx.md
,一个不隔离上下文的预设命令。
2.智能体自行多阶段检索
事件驱动注入上下文此前咱们的文章已经详细阐述过了,这里不再赘述,主要探讨自主探索完成任务所需的关键信息。区别于传统AI IDE的预建索引模式,Claude Code完全依赖模型的智能检索能力,它的主要特定有:
- 动态索引机制,降低构建索引门槛:以文件目录结构作为索引,以文件内容作为上下文,降低构建索引的门槛
- 智能检索策略:Agent模型通过正则表达式和关键词多轮自主查找,动态决策上下文引用
- 时间成本换取上下文精确度:本质上是一种测试时扩展策略,用时间成本换取上下文精确度
- 可扩展性:虽然要用智能体自行检索文件的方式还有争议,但毫无疑问claudecode证明了这种方式是可行的,也为构建专业化工具、知识库和Agent系统提供一种设计范式。
一些资料显示Claude Code也尝试过构建RAG方案,但由于索引维护和安全隐患的问题,不得不放弃。这不由的引出了一个问题什么时候你才真正需要复杂的索引,什么时候简单的智能体搜索就足够了?
3.mcp动态提供上下文
mcp在设计之初就远不止作为一种工具,这其中提供资源和提供提示词模板也是它的重要职责。
1). mcp提供提示词模板
- 我们可以通过不同任务需求预设提示词模板,
- 在需要的时候由模型调度mcp自行加载
2). mcp提供mcp工具
- 按任务需求,检索MCP工具或mcp工具组合
- 提供加载mcp命令或配合注册表等工具加载mcp工具
3). mcp提供资源
- 目录列表功能:比如在我做到TFS/Oracle MCP支持List目录正则递归查找,快速定位目标文件,在oracle中我将查询表结构和字段的功能当作一种列表索引
- 查看功能:第二阶段在找到正确的代码文件后再通过View/Diff功能查看完整代码或变更集,oracle的第二阶段也是找到正确的表结构才开始检索具体的表数据
- 多阶段检索:如果没有一时没有找到正确的内容,也可以通过智能体自行决策再次检索。
定义工具
前文我们给出了Agent的定义是自主决策多轮地调用工具完成任务。
在这种定义下,工具和Agent是一种相对概念,在工具和Agent之间必须划分一条清晰的界限。Claude Code通过Task as Tool机制
激进地把所有能交付任务的Agent也作为工具存在。咱们可也以以此为参考明确划分Agent和工具的职责:
Agent的职责
- 决策制定:分析问题,制定解决方案和执行计划
- 任务协调:将复杂任务分解为可执行的步骤
- 上下文理解:理解用户意图和项目背景
- 错误处理:当工具执行失败时进行重试或调整策略
工具的职责
- 具体执行:完成特定的任务
- 数据获取:从各种来源获取信息
- 状态变更:修改文件、执行命令、创建资源
- 提供信息:提供精心编排任务相关的信息
这种职责划分在上下文管理上体现为三个方面:
- 信息密度管理,Agent负责控制总体信息密度,工具提供高质量、低冗余的信息。
- 认知负载分配,Agent承担复杂推理和决策负担,工具减少Agent的认知开销。
- 上下文窗口优化,Agent决定何时使用哪些工具以最大化上下文利用率,工具返回紧凑但完整的结果
工具设计的原则
根据这些Agent和工具的职责划分和上下文管理原则,咱们可以制定一些开发mcp工具的原则:
-
- 暴露任务能力,划清边界,而不是暴露复杂地多个相似接口
-
- 提供高质量的返回信息,供Agent进行决策
-
- 提供可靠的执行保障,尽可能把程序级别的错误留在工具层面处理
-
- 提供可扩展的接口参数,如路径可使用正则搜索
-
- mcp应该是一套完整可组合的任务生命周期,一套完整的服务
定义工作流程
相信不少做过业务的朋友都有这样的体会,聊得全是Agent,落地全是workflow,这个问题的本质我们希望尽可能得发挥Agent的自主能力,但业务落地时希望收敛到可控可验证的结果。,
要想聊明白这个问题,咱们得先来看Agent和Workflow都有哪些特点:
Agent(智能体)
- 自主决策:基于当前状态和目标自行选择行动
- 动态适应:能够根据环境变化调整策略
- 创造性解决:可以探索未预设的解决路径
Workflow(工作流)
- 预定义路径:按照既定步骤执行任务
- 可预测性:结果和执行过程相对稳定
- 质量保证:通过标准化流程确保输出质量
就和人有时候也需要按规矩办事一样,Agent和Workflow也不是一对冲突概念,如何充分发挥他们的能力,关键在于如何平衡LLM驱动和规则驱动。
LLM驱动和规则驱动平衡策略
我们可以采用一些策略来平衡LLM驱动和规则驱动:1.上层Agent调度,下层工具执行。2.先自由探索再逐渐收敛路径,3.规则与LL模型混合使用。
1. 分层架构:上层Agent调度,下层工具执行
-
在Claude Code中,面对复杂需求时,如代码任务,上层LLM Agent负责分析代码瓶颈、制定重构策略,并规划执行顺序。下层工具系统则严格执行具体操作,不做主观判断:Read工具读取组件源码,update工具代码替换。这种分层确保了系统既有智能决策能力,又有可靠的执行保障。
-
同时我们可以将规则驱动写入工具层中,细心的朋友一定会发现,Claude Code 进行Update操作时,经常会跳出来还没进行读操作不能进行更新,LLM会调整策略先进行读操作再进行更新,这就是工具里的规则驱动。
2. 渐进式控制:从探索到收敛的系统化方法论
-
探索阶段的开放性决策机制:在复杂问题域中,系统初期采用非约束性的策略,接入恰当的工具,允许LLM在解决方案空间内进行启发式探索解决方案。
-
收敛阶段的知识固化机制:在探索到可行的解决方案后,探索阶段的可行路径,咱们可以通过被LLM抽象或者规则固定成为标准作业程序(SOP),通过不断调整SOP最终形成了从Agent实践测试发现到固定工作流流程的收敛。
实践:Spec方法的多Agent协同架构
-
上下文隔离的职责分工模式:通过Agent功能解耦,建立了报告生成Agent、质量评估Agent和执行Agent的三层协作架构。每个Agent维护独立的专业领域知识库和决策逻辑,通过标准化的文档接口进行信息传递,避免了直接状态共享带来的复杂性和不确定性。
-
质量闭环的迭代优化机制:通过预设模板和Agent系统构建了基于模板驱动的内容生成→多维度评分验证→反馈修正的完整质量保证环路。验证Agent的评分机制作为系统的质量门控,确保只有达到预设标准的报告才能进入执行阶段,同时为生成Agent提供了持续优化的指导信号,形成了自我完善的闭环系统。
这种架构实现了Agent自主性与任务可预测性的有机统一,将非结构化的创造性工作转化为结构化的工程化流程。这类模板库的形成也许就是现阶段一些垂类Agent落地的核心资产。
3. 混合模式:Agentic workflow —— N8N等工作流平台
-
N8N的核心数据处理采用严格规则系统 :节点连接遵循预定义格式,工作流按DAG确定性执行,每个节点都有严格的schema验证和标准化错误处理。这确保了95%标准场景的快速稳定执行。
-
对于复杂自定义需求,N8N引入LLM处理边缘情况:动态生成JavaScript函数、智能数据映射、异常处理和工作流优化建议。成功的LLM方案会逐步标准化为新的节点类型,形成持续学习循环,让平台既保持可靠性又具备创新灵活性。
对于简单重复性任务,基于三个策略也许可以汇总到一个有趣的实践路径:
Claude Code -> 测试拆解需求->根据n8n知识库,生成n8n dsl-> n8nmcp执行验证 -> 生成n8n工作流->Claude Code调度n8n工作流mcp完成任务`
工具是Agent落地业务的最后一公里,n8n之类的workflow,相对于Agent也应该是一种工具。也许我们面对重复性业务时,不用急着完成直接的需求,而是创造工具,用工具完成长尾的任务。
从Claude Code到配置型软件工程Agent平台
在解决了Agent模型的核心能力、上下文环境的灵活定义、工具生态的标准化 设计以及工作流的平衡策略后,一个更宏大的愿景浮现:基于Claude Code构建一套完整的配置型软件工程自动化平台。
Claude Code SDK:从工具到平台的进化
企业级部署架构:六大大核心组件
-
Claude Code SDK的核心价值在于将Claude Code能力进行标准化封装,为企业级应用提供可靠的API接口。通过SDK,开发者可以将Claude Code的智能决策能力嵌入到现有的开发工具链中,实现从需求分析、代码生成、测试执行到部署监控的全流程自动化。
-
容器化运行环境提供了标准化的部署基础,通过Docker容器确保Claude Code在不同环境中的一致性表现。配置文件注入机制允许企业根据不同项目需求动态调整Agent行为,同时保障敏感信息的安全隔离。
-
监控与回调钩子系统 通过事件驱动的脚本执行机制,实现对Agent行为的实时监控和干预,企业可以在关键节点注入自定义的审计和控制逻辑。
-
MCP注册表作为统一的工具管理中心,解决了企业环境中工具版本管理、权限控制和功能发现的难题。
-
LLM网关则提供了模型调用的统一接入点,支持多模型负载均衡、成本控制和性能监控,让企业能够灵活选择和切换不同的AI模型。
-
在多Agent交互设计中,目前我采用文档驱动的松耦合架构,多个Claude Code实例通过标准化的Markdown文档进行信息传递,避免了复杂的状态同步和冲突解决问题。这不是完备的多Agent架构但目前能解决一定问题。
评估反馈:软件工程智能化的最后一公里
-
当前阶段,需求理解和效果评估仍然是人工干预最密集的环节,这也是制约AI软件工程规模化应用的关键瓶颈。代码样式正确性评估需要结合静态分析工具和企业编码规范,构建自动化的代码质量门禁;功能轨迹正确性评估要求建立完善的测试用例库和行为验证机制,确保Agent生成的代码符合预期的业务逻辑。
-
结果评估体系涉及多维度的质量指标,包括性能基准、安全合规、用户体验等方面的综合评分。系统集成正确性评估则需要在真实环境中验证代码变更对整体架构的影响,这往往需要复杂的回归测试和影响面分析。
精选参考项目
所有项目来自github,请自行添加前缀。
1.开源复刻版claude:shareAI-lab/Kode
2.Claude Code配置模板:davila7/claude-code-templates
3.Claude Code模型切换:musistudio/claude-code-router
4.mcp动态注入提示词:minipuft/claude-prompts-mcp
5.mcp服务统一管理平台:samanhappy/mcphub
6.bmad开发工作流:bmad-code-org/BMAD-METHOD
7.spec开发方法: Pimzino/claude-code-spec-workflow
8.自动生成评估工作流Agent:EvoAgentX/EvoAgentX
9.n8n 执行mcp:czlonkowski/n8n-mcp
10.claude可视化项目:opactorai/Claudable
11.多Claude Agent互动架构:ruvnet/claude-flow
12.Claude Code自动化:anthropics/claude-code-action
13.官方mcp注册打包:anthropics/mcpb
13.AI适用的Serverless容器:beam-cloud/beta9
14.cc使用OPENAI格式模型:fuergaosi233/claude-code-proxy
15.Claude Code开发sdk:anthropics/claude-code-sdk-python