但凡你自己动手搭建过编码智能体,大概率都会遇到这类问题:把大模型对接文件读写工具与终端命令工具,挂载到真实代码仓库后,往往执行十几轮工具调用就彻底崩盘。

要么读错目标文件,要么执行中途遗忘核心需求,大量无效返回内容塞满上下文窗口,彻底偏离任务目标。

但同样的需求交给 Claude Code,就能流畅闭环完成。很多人会简单归结为:Anthropic 自家模型性能更强,可这个结论完全忽略了真正起决定性作用的底层工程设计。

真正拉开差距的核心是harness(运行框架)。运行框架就是包裹在大模型外层的工程代码,全权负责任务规划、工具调度执行、上下文记忆、安全管控;大模型只需要专注决策下一步该执行什么动作。

如果把整套成型的智能体运行框架画成架构图,结构看着繁杂,但可以划分为四大核心模块:

  • Memory(记忆模块):向大模型推送当前任务上下文,同时载入跨会话沉淀的知识库信息
  • Skills(能力模块):定义智能体的运行规范,包含执行流程、约束条件、决策启发规则
  • Protocols(通信协议层):打通智能体与用户、工具、其他智能体之间的交互链路
  • 框架核心层:统筹调度子智能体、运行沙箱、结果校验、人工审批流程、可观测日志、上下文压缩

Anthropic 把这套架构通俗划分为「大脑」与「手脚」:大模型是负责判断动作的大脑,运行框架是落地执行、锚定任务进度的手脚。

所以你自研智能体和 Claude Code 之间的能力鸿沟,根源不在于模型本身,而在于模型外围整套工程化调度体系。

Claude Code 是目前生产环境中成熟度顶尖的运行框架之一,但其底层架构拆解后,核心层级远比想象中精简。为了直观厘清整套框架需要自研哪些模块,我基于开源多智能体编排框架 CrewAI 复刻了这套体系。

最终发现框架原生能力可以覆盖大部分基础能力,剩下无法直接开箱即用的部分,才是真正需要手动攻坚的工程难点。

接下来我们逐层搭建整套框架:先实现核心执行循环,再依次叠加任务规划、子智能体委派、沙箱环境、持久化记忆。每一步都会清晰区分「框架原生自带能力」和「需要自行开发定制」的边界。

Claude Code 运行框架底层原理

Claude Code 的最核心基础就是一套标准智能体循环:

    1. 向模型传入对话消息,模型输出下一步动作;要么直接回复文本结果,要么发起工具调用请求。
    1. 一旦触发工具调用,框架执行对应工具并把执行结果回填对话上下文,再交由模型进行下一轮决策。
    1. 不断循环,直到模型不再发起任何工具调用、直接输出最终答复,本轮任务宣告结束。

在这套循环里,读取文件、修改代码、执行终端命令、运行单元测试,并非拆分出多个独立运行模式,全部都是同一套循环内不同类型的工具调用。

但仅靠基础循环,编码智能体稳定性完全无法支撑真实项目开发。因此 Claude Code 在循环外层叠加了任务规划、文件操作工具集、子智能体委派、记忆系统、权限审批与沙箱隔离体系。这些模块不会替换原有主循环,而是让整套流程具备安全性与稳定性,适配工程级实际开发场景。

下面就按照这套架构分步复刻,从最基础的主循环开始,逐层对接 CrewAI 对应原生功能。

核心智能体执行循环

循环会固定重复以下流程直至任务完结:

    1. 传入任务指令交由大模型处理
    1. 模型直接输出文本回答,或是发起一项/多项工具调用
    1. 若存在工具调用,框架批量执行工具,并将返回结果回传给模型对话上下文
    1. 携带更新后的对话记录,进入下一轮循环
    1. 当模型回复内容不含任何工具调用时,任务终止并返回最终结果

伪代码实现:

while True:    reply = model(messages, tools)    # 筛选出所有工具调用指令    calls = [b for b in reply if b.type == "tool_use"]    if not calls:        # 无工具调用,直接返回最终结果,任务结束        return reply.text    # 追加模型回复内容 + 所有工具执行结果,进入下一轮循环    messages += [reply, run_all(calls)]

单次简单查询可能一轮循环就能结束;但修复复杂漏洞、大规模代码重构这类场景,往往需要数十轮迭代,模型获取足够信息后才会输出最终结论。

而 CrewAI 只要创建智能体并绑定任务,就会自动内置这套执行循环,无需手动编写 while 循环逻辑,仅需定义智能体与对应任务即可。

搭建第一个基础智能体

创建一个简单的漏洞修复智能体:

from crewai import LLM, Agent, Crew, Task# 定义漏洞修复智能体bug_fixer = Agent(    role="漏洞修复专员",    goal="在代码仓库中定位已知漏洞,并给出对应的修复方案",    backstory="会遍历目录与读取源码文件,精准梳理项目代码结构",    llm="claude-sonnet-4-6",)# 定义具体任务task = Task(    description="完成 {objective} 描述的漏洞修复工作",    expected_output="简要说明修复方案,以及需要修改的目标文件",)# 启动编排流程并传入入参result = Crew(agents=[bug_fixer], tasks=[task]).kickoff(    inputs={"objective": "修复 account.py 中的透支漏洞"})

三个核心基础概念:

  • Agent(智能体):定义执行主体,包含角色定位、目标、大模型绑定、可用工具集合
  • Task(任务):明确需要完成的具体工作与交付标准
  • Crew(编排集群):聚合智能体与任务,调用 kickoff() 即可自动运行前文所述的整套执行循环,底层可无缝兼容 Anthropic、OpenAI、谷歌等任意大模型

为智能体挂载工具集

大模型本身仅能生成文本,想要操作代码仓库,必须依托工具实现文件读取、写入、终端执行、三方接口调用。

CrewAI 自带开箱即用的文件系统工具:

  • • FileReadTool:读取指定文件内容
  • • DirectoryReadTool:遍历列出文件夹目录结构
  • • FileWriterTool:新建/覆盖写入文件
from crewai_tools import DirectoryReadTool, FileReadTool, FileWriterToolread_file = FileReadTool()write_file = FileWriterTool()list_dir = DirectoryReadTool()filesystem_tools = [read_file, write_file, list_dir]

这类工具同时可以充当外置记忆:不需要把海量检索内容全部塞进模型上下文窗口,智能体可将长文本结果写入临时文件,上下文仅留存文件路径,后续需要时再按需读取。

以此精简上下文负载,让模型注意力聚焦核心任务,这也是 Anthropic 提出的上下文工程核心思路。

内置工具仅覆盖通用常用场景,定制化工具可以通过 @tool 装饰器封装 Python 函数实现。函数文档字符串就是工具使用说明,告知模型该工具用途、适用场景与入参规范。

示例:封装 pytest 测试执行工具

from crewai.tools import toolimport subprocess@tool("run_tests")def run_tests(path: str = "tests/") -> str:    """在指定路径执行 pytest 测试用例,并返回执行结果"""    result = subprocess.run(        ["pytest", path, "-q"], capture_output=True, text=True, timeout=120    )    output = result.stdout + result.stderr    # 限制返回文本长度,避免上下文溢出    return output[-4000:] if len(output) > 4000 else output

长周期任务的任务规划机制

任务复杂度提升后,纯基础循环很容易出现上下文衰减:经过多轮文件读取、工具调用、中间结果回填后,上下文信息冗余杂乱,原始任务目标被大量无关信息淹没,智能体逐渐偏离需求。

任务规划就是用来解决该问题:智能体在正式动手执行前,先输出分步执行计划,并且全程将计划保留在上下文内。

计划不会直接执行操作,而是作为路线图锚定核心目标,对应 Claude Code 里待办清单的作用。

CrewAI 在集群层面开启规划功能即可生效,会在流程启动前生成整体执行方案:

from crewai import Crew, LLMcrew = Crew(    agents=self.agents,    tasks=self.tasks,    planning=True,    # 可自定义负责生成规划的大模型    planning_llm=LLM(model="gpt-4o-mini"),)

默认使用 gpt-4o-mini 生成规划,支持替换为任意大模型。

单个智能体还能开启自主推理,在行动前自行梳理思路:

from crewai import Agentbug_fixer = Agent(    role="漏洞修复专员",    goal="在代码仓库中定位已知漏洞,并给出对应的修复方案",    backstory="会遍历目录与读取源码文件,精准梳理项目代码结构",    tools=[FileReadTool()],    reasoning=True,    max_reasoning_attempts=3  # 可选:限定最多迭代思考次数)

规划与自主推理分工不同:

  • • 全局规划:针对整项大任务搭建顶层步骤框架
  • • 单体推理:单个智能体在执行单步操作前,先斟酌自身执行思路

两者搭配使用,能有效防止长流程任务跑偏。

通过子智能体委派拆解任务

规划能锁定任务方向,但无法减少单轮上下文承载的信息体量。面对大型代码仓库,即便有清晰规划,单次任务需要读取数十个文件,全部塞进主智能体上下文依然会超限。

子智能体委派可以拆分工作量:主智能体下发细分子任务给专项辅助智能体,子智能体拥有独立上下文完成工作后,仅向主智能体返回精简结论,中间执行过程不会污染顶层上下文。

CrewAI 依托分层执行流程实现该能力:设置一名主管智能体,向多个垂直领域专业智能体分发任务,并汇总所有结果。

原先单一个漏洞修复智能体包揽所有工作,现在拆分为四类角色:

    1. 代码仓库勘探员:遍历仓库结构,筛选和需求相关的目标文件
    1. 软件开发工程师:落地代码修改与功能实现
    1. 测试执行员:在沙箱环境运行测试,反馈用例通过/失败结果
    1. 技术主管:统筹拆解任务、分配工作、审核结果,全部修改验收完成后结束流程

from crewai import Crew, Agent, Task, Process# 仓库勘探智能体explorer = Agent(    role="代码仓库勘探员",    goal="梳理仓库目录结构,筛选出和当前任务强相关的文件",    backstory="遍历文件夹与读取源码,搭建项目整体代码图谱",    tools=[read_file, list_dir],    llm=llm,)# 工程师、测试员智能体配置逻辑同上# 主管智能体manager = Agent(    role="技术主管",    goal="拆解需求为分步任务,指派给对应专项智能体,审核测试结果,确认需求闭环",    backstory="统筹分工,校验修改内容,测试全部通过后收尾工作",    llm=llm,    allow_delegation=True,  # 开启委派权限,默认关闭必须手动开启)# 分层编排集群crew = Crew(    agents=[explorer, coder, tester],    tasks=[task],    manager_agent=manager,    process=Process.hierarchical,)

沙箱机制:加固智能体执行安全

具备终端命令执行权限的智能体,有概率执行删除文件、篡改系统等高危指令;单纯靠提示词约束模型自律无法做到本质防护。

安全防护分为两层:

    1. 权限审批机制:高危操作必须经过人工确认才可执行
    1. 沙箱环境隔离:即便指令被审批放行,操作也只会在隔离环境内运行,无法篡改宿主机本机系统

Anthropic 也是采用这套双层防护方案。将代码执行完全移入沙箱,可以大幅降低人工审批频次,同时从底层保护宿主机环境。

CrewAI 接入沙箱执行

借助 E2B 服务实现沙箱能力:每次会话启动一台独立虚拟机,会话结束后销毁实例。所有 Shell 命令、Python 代码都在隔离环境内运行,不会影响本地机器。

from crewai_tools import E2BExecTool, E2BPythonTool# 沙箱终端执行工具、沙箱Python代码运行工具sandbox_tools = [E2BExecTool(), E2BPythonTool()]

人工介入审批流程

给 Task 开启 human_input=True,智能体产出阶段性结果后流程会暂停,等待人工审核;可选择批准放行,或是驳回并给出修改意见,让智能体迭代优化。

终端场景下会阻塞等待控制台输入;如果对接网页端/聊天窗口,可基于 Webhook 实现线上审核交互。

from crewai import Tasktask = Task(    description="在 ./workspace 工作目录内完成 {objective},先梳理项目结构,完成代码修改,执行测试并输出结果",    expected_output="汇总修改文件清单与最终测试执行日志",    human_input=True,)

记忆持久化与断点续跑

默认情况下,单次编排任务结束后,智能体所有对话记录全部清空。隔天针对同一个项目修复新漏洞,会完全丢失之前对项目的认知,从头开始分析仓库。

两类机制可以实现跨任务信息留存,二者定位不同:

    1. Checkpoint(断点快照):单次任务执行中途保存运行状态,程序意外中断后可从快照位置恢复流程,也可以基于当前进度尝试其他修改方案
    1. 持久化记忆:跨不同会话存储项目通用规则、历史结论,例如「项目最终代码必须统一格式化后再提交」这类项目约定,后续任务自动读取记忆信息

CrewAI 持久化记忆

开启集群级 memory=True,整个集群内所有智能体共享记忆空间。每轮任务结束后,框架会调用大模型提炼本轮关键信息并入库;后续新任务启动时,自动检索匹配的历史记忆注入提示词。

from crewai import Crewcrew = Crew(    agents=[explorer, coder, tester],    tasks=[task],    memory=True,)

单个智能体也可单独配置私有记忆,脱离集群公共记忆池。

CrewAI 断点续跑

断点会完整快照智能体配置、任务进度、记忆库、中间输出、入参与全量执行日志。

默认每完成一项 Task 自动生成断点,支持两种存储方案:

  • • JsonProvider:每个断点单独生成 JSON 文件,可读性强,方便手动查看调试
  • • SqliteProvider:全部断点存入单条 SQLite 数据库,高频快照、大规模任务场景稳定性更好
from crewai import Crewcrew = Crew(    agents=[explorer, coder, tester],    tasks=[task],    checkpoint=True,)

Crew、Flow、Agent 均支持单独配置断点开关,子级组件会默认继承父级配置,可单独覆盖自定义。

全模块整合完整版代码

整合执行循环、工具集、全局规划、分层子智能体、沙箱隔离、记忆存储、断点存档全套能力:

from crewai import Agent, Crew, LLM, Process, Taskfrom crewai.tools import toolfrom crewai_tools import (DirectoryReadTool, FileReadTool, FileWriterTool,                           E2BExecTool, E2BPythonTool)# 绑定目标大模型llm = LLM(model="anthropic/claude-sonnet-4.6")# 限定工作根目录list_dir = DirectoryReadTool(directory="./workspace")filesystem_tools = [FileReadTool(), FileWriterTool(), list_dir]exec_tool = E2BExecTool()sandbox_tools = [exec_tool, E2BPythonTool()]# 自定义测试工具@tool("run_tests")defrun_tests(path: str = "tests/") -> str:    """将本地 ./workspace 目录同步至沙箱环境,并执行pytest测试用例"""    return exec_tool.run(command=sync_and_test_command(path))# 1. 仓库勘探智能体explorer = Agent(    role="代码仓库勘探员",    goal="梳理仓库整体结构,定位需求对应的核心关联文件",    tools=[FileReadTool(), list_dir],    llm=llm)# 2. 代码开发智能体coder = Agent(    role="软件开发工程师",    goal="根据需求落地代码修改与功能实现",    tools=filesystem_tools,    reasoning=True,    llm=llm)# 3. 测试执行智能体tester = Agent(    role="测试运行专员",    goal="在沙箱环境执行自动化测试,反馈用例通过/失败情况",    tools=sandbox_tools + [FileReadTool()] + [run_tests],    llm=llm)# 4. 主管委派智能体manager = Agent(    role="技术主管",    goal="拆解任务并分配给对应专项智能体,校验测试结果,全部用例通过后结束任务",    allow_delegation=True,    llm=llm)# 主任务配置task = Task(    description="在 ./workspace 目录内完成 {objective},先调研代码结构,执行代码修改,运行测试并汇总结果",    expected_output="修改文件清单 + 完整测试输出报告",    human_input=True,)# 编排集群开启所有核心能力crew = Crew(    agents=[explorer, coder, tester],    tasks=[task],    manager_agent=manager,    process=Process.hierarchical,    planning=True,    memory=True,    checkpoint=True,)# 启动流程并传入需求result = crew.kickoff(inputs={"objective": "修复 account.py 中所有执行失败的测试用例"})

编码智能体最适合以自动化测试用例作为效果验收标准:测试套件可以给出明确可量化的目标,智能体能够自主规划、改代码、跑测试、迭代修复直至全部用例通过。

本文方案基于一套小型项目做验证:项目包含 BankAccount 账户类,预设2个程序漏洞、5条测试用例,其中3条用例执行失败。约束规则仅允许修改业务实现代码,禁止改动测试脚本。

整套运行框架最终将5条测试用例全部修复至执行通过,严格遵守不修改测试代码的限制,没有走捷径规避问题。

这套验收思路也和 Anthropic 内部评测编码智能体的方式一致:官方公开案例中,Claude 曾基于大量报错测试用例,从零复刻 claude.ai 官网前端页面。

仍需要开发者自主落地的核心工作

框架只能提供基础编排能力,以下核心环节无法通过配置一键实现,必须手动定制开发:

    1. 提示词工程:每个智能体的角色、目标、背景描述直接决定行为逻辑。提示词需要反复调试迭代优化,不存在可以一劳永逸的配置参数
    1. 执行环境搭建:无论是选用 E2B 托管沙箱,还是自行搭建虚拟机容器沙箱,都需要完成环境部署与工具链路对接
    1. 工具权限划分:哪些智能体可以调用哪些工具、权限范围如何管控,属于架构设计决策,框架不会自动做权限分配

同时整套框架本身会产生调用成本:全局规划、多子智能体委派、多轮循环重试都会额外消耗大模型接口调用次数。简单需求如果强行套用重型多智能体架构,开销会远高于单轮模型直接调用。

还有一项长期演进层面的局限:随着大模型本身能力迭代,很多框架层的冗余脚手架会被逐步淘汰。当下很多运行框架的设计,本质是为了弥补现有模型上下文记忆、长链路规划的短板,并非永久刚需架构。

例如 Anthropic 曾依靠上下文重置机制防止 Claude Sonnet 4.5 提前终止任务,而能力更强的 Claude Opus 4.5 就不再需要该兜底机制。

总结

整套编码智能体的核心竞争力绝大部分来源于外层运行框架,而非模型本身。

借助 CrewAI 这类编排框架,循环调度、任务规划、任务委派、沙箱隔离、记忆存储、断点续存都可以通过配置快速启用;而提示词设计、运行环境部署、工具权限体系,是需要开发者自主打磨的核心工程部分。

学AI大模型的正确顺序,千万不要搞错了

🤔2026年AI风口已来!各行各业的AI渗透肉眼可见,超多公司要么转型做AI相关产品,要么高薪挖AI技术人才,机遇直接摆在眼前!

有往AI方向发展,或者本身有后端编程基础的朋友,直接冲AI大模型应用开发转岗超合适!

就算暂时不打算转岗,了解大模型、RAG、Prompt、Agent这些热门概念,能上手做简单项目,也绝对是求职加分王🔋

在这里插入图片描述

📝给大家整理了超全最新的AI大模型应用开发学习清单和资料,手把手帮你快速入门!👇👇

学习路线:

✅大模型基础认知—大模型核心原理、发展历程、主流模型(GPT、文心一言等)特点解析
✅核心技术模块—RAG检索增强生成、Prompt工程实战、Agent智能体开发逻辑
✅开发基础能力—Python进阶、API接口调用、大模型开发框架(LangChain等)实操
✅应用场景开发—智能问答系统、企业知识库、AIGC内容生成工具、行业定制化大模型应用
✅项目落地流程—需求拆解、技术选型、模型调优、测试上线、运维迭代
✅面试求职冲刺—岗位JD解析、简历AI项目包装、高频面试题汇总、模拟面经

以上6大模块,看似清晰好上手,实则每个部分都有扎实的核心内容需要吃透!

我把大模型的学习全流程已经整理📚好了!抓住AI时代风口,轻松解锁职业新可能,希望大家都能把握机遇,实现薪资/职业跃迁~

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐