当前位置: 首页 > article >正文

我用9个AI Agent,从0到1复刻了一个完整的Claude Code

起因4月初Claude Code的源码泄露了。拿到源码之后通读了一遍大概1,900个文件、512K行TypeScript代码。看完之后就有了一个想法能不能用Go把它重写一遍不是写个Demo玩玩而是把所有功能都搬过来——CLI入口、LLM查询引擎、40多个内置工具、TUI终端界面、MCP协议客户端、权限系统、配置系统、多Agent协调、会话管理全都要。更进一步我决定自己不写任何生产代码。设计、编码、评审、测试、Bug修复全交给AI Agent来做。我只管提需求、定流程、验收结果。为什么用GoClaude Code原版是TypeScript Bun运行时换成Go有几个实际的好处「Go编译成单一二进制」分发部署简单不需要Node.js运行时「goroutine channel」天然适合并发场景——流式响应、工具并发执行、多Agent协调「Go的类型系统和接口机制」做大型项目的模块解耦比较舒服另外我也想试试AI Agent处理Go语言的复杂工程项目能做到什么程度组建AI团队这个项目的规模不小一个Agent搞不定。我参照真实软件团队的组织结构设计了一套多Agent协作方案项目治理层「PM Agent项目经理」—— 项目的中枢神经。不写代码但对整个项目的交付结果负全责。负责任务拆解、进度跟踪、依赖管理、风险控制、流程执法。PM是唯一有权宣布项目完成的角色。「Tech Lead Agent技术负责人」—— 项目的技术大脑。输出架构设计、定义接口契约、做代码评审、解决技术阻塞。所有技术决策的最终拍板人。开发执行层六个专职开发Agent每人负责一个架构层次Agent负责层次核心模块Agent-Infra基础设施层公共类型、配置系统、应用状态、会话存储Agent-Services服务层API客户端、MCP客户端、OAuth认证Agent-Core核心层查询引擎、权限系统、上下文压缩、HooksAgent-Tools工具层40内置工具的完整实现Agent-TUITUI层BubbleTea终端界面、Slash命令Agent-CLI入口层Cobra命令解析、程序启动质量保障层「QA Agent」—— 项目的质量门卫。制定测试策略对每个模块独立验收出具验收报告。「总共9个Agent」分工明确。具体怎么做的这不是简单地告诉AI帮我写个CLI工具整个过程走了一套完整的软件工程流程。第一步架构先行Tech Lead Agent先上。基于泄露的TypeScript源码它输出了一份完整的Go版架构设计文档。这份文档定义了「六层分层架构」——入口层、TUI层、核心层、工具层、服务层、基础设施层「严格的单向依赖」——下层禁止依赖上层同层禁止互相依赖「核心技术决策」——BubbleTea做TUI、goroutinechannel做并发、三级配置优先级、权限决策流程「完整的数据流定义」——LLM查询主循环、工具权限检查流程、子Agent调度流程┌─────────────────────────────────────────┐ │ 入口层 (Entry) │ │ CLI 命令解析与程序启动 │ └──────────────────┬──────────────────────┘ │ ┌──────────────────▼──────────────────────┐ │ TUI 层 (UI) │ │ 终端用户界面渲染与用户交互 │ └──────────────────┬──────────────────────┘ │ ┌──────────────────▼──────────────────────┐ │ 核心层 (Core) │ │ LLM 查询引擎 | 工具编排 | 权限检查 │ └────┬──────────┬──────────┬──────────────┘ │ │ │ ┌────▼──┐ ┌───▼───┐ ┌───▼────────────┐ │工具层 │ │服务层 │ │ 基础设施层 │ └───────┘ └───────┘ └────────────────┘六层架构示意图第二步全员并行开发这是整个项目比较关键的一个决定。传统做法是按依赖顺序串行——先搭基础设施再写核心逻辑最后做UI。但我让所有Agent同时开工。PM Agent定了一条规矩❝「所有Agent同时启动不串行等待。依赖没就绪的地方用// TODO(dep): 等待 模块 就绪后补全标记先跳过继续推进。」❞实际效果是Agent-Infra在写配置系统的同时Agent-Core已经在设计查询引擎了Agent-Tools不用等Agent-Core完成先按接口契约写工具实现PM Agent持续跟踪依赖状态某个模块就绪了就通知对应Agent回填TODO六个开发Agent同时推进项目整体耗时缩短了不少。多Agent并行开发第三步三层质量门控代码写完不算完每个模块要过三关「第一层Tech Lead代码评审」Tech Lead Agent先读设计文档再对比实现代码逐行审查。每份评审报告都包含设计 vs 实现差异分析标注P0阻塞性问题、P1重要问题、P2建议改进。六个模块总共产出了12份评审报告——6份设计评审 6份代码评审累计超过100个审查意见。「第二层QA验收测试」QA Agent从测试角度独立验收单元测试质量、可测试性、功能完整性。不评审代码架构那是Tech Lead的活儿专注于这个模块能不能正确工作。「第三层Bug退回与修复闭环」评审发现的问题不代为修改退回给对应的开发Agent修复修复完Tech Lead复核。直到所有P0问题关闭。跟真实团队的流程差不多。代码评审报告数字说话列几个关键数据指标数值Go源文件数170Go代码总行数50,000测试文件数80文档数80Agent角色数9个任务总数50评审报告数12份架构层次6层内置工具数40从架构设计到代码评审完成总共花了大约「一周」。9个Agent并行推进产出了一个可编译的、带80多份文档的Go语言项目。技术细节1. 功能覆盖不是阉割版主要功能都做了「交互式TUI界面」基于BubbleTea的Elm架构Model-Update-View支持暗色/亮色主题、Vim键绑定、流式输出渲染「LLM查询引擎」完整的请求-响应主循环支持工具调用编排只读工具并发、写工具串行、token预算管理、上下文自动压缩「40内置工具」文件读写编辑、Shell执行、Glob/Grep搜索、子Agent调度、MCP工具适配、Web搜索抓取、任务管理等「权限系统」多级规则匹配全局/项目/本地配置叠加、文件路径校验、Shell命令匹配、用户确认对话框「MCP客户端」完整的Model Context Protocol实现支持stdio/SSE/HTTP三种传输方式「OAuth认证」完整的OAuth2授权码流程、Token安全存储与刷新「会话管理」对话持久化、--resume断点恢复「18个Slash命令」/help、/clear、/compact、/commit、/review、/diff、/mcp等2. 用Go的方式重写没有照搬TypeScript的写法而是按Go的惯例重新做TypeScript特性Go实现方案React InkBubbleTea Lip Glossasync/await Promisegoroutine channeluseState/setStateModel struct Update()EventEmitterchannel广播Zod schema验证go-playground/validatorCommander.jsCobra3. 工程层面「接口驱动开发」所有模块通过interface解耦支持依赖注入和Mock测试「并发安全」全局状态使用sync.RWMutex保护上下文取消统一走context.Context「分层架构」严格的单向依赖pkg/types作为零依赖公共基础「错误处理」自定义错误类型、AbortError优雅退出、API可重试/不可重试错误区分做完之后的一些想法AI能干的活比想象中多9个Agent不光写了代码还输出了完整的架构设计文档做了12轮代码评审发现并修复了9个P0级Bug产出了80多份技术文档建了完整的测试策略和验收流程流程比技术更重要前几轮迭代踩了不少坑——QA跑去评审代码架构、PM直接改代码、Agent改了别的Agent负责的模块。后来加了严格的角色边界PM不碰代码QA只管测试代码质量的事交给Tech Lead发现问题退回原Agent修不允许顺手帮忙所有变更走正式流程管AI团队和管人套路差不多——「流程和规范才是规模化的关键」。并行开发的依赖管理传统思路是等依赖好了再动手。但用TODO占位的方式可以做到全员同时开工PM跟踪依赖链就绪了就通知回填。项目总耗时缩短很多。这个思路对真实团队也有参考价值。很多时候等只是惯性思维。开源地址项目已开源欢迎Star、Fork、提Issue「GitHub」: https://github.com/tunsuy/claude-code-go你可以在docs/project/目录下找到完整的架构设计文档9个Agent的角色定义项目开发计划表和依赖关系图12份代码评审报告QA验收报告PM巡检日志这些文档本身就是一份完整的多Agent协作记录有兴趣可以翻翻。写在最后这个项目目前还在评审修复阶段有些P0问题正在处理。但核心代码已经就绪go build可以通过编译。这个项目的意义不在于又多了一个Claude Code替代品而是验证了一件事「一个50,000行、六层架构、有完整工程流程的Go项目可以由AI Agent团队从0到1交付。」不是Demo是实际的软件工程。AI写代码这事已经不新鲜了但让一群AI Agent像真实团队一样分工协作、互相评审、迭代修复——这件事还有很多可以探索的空间。感兴趣的可以来GitHub上看看欢迎交流。❝项目地址https://github.com/tunsuy/claude-code-go❞

相关文章:

我用9个AI Agent,从0到1复刻了一个完整的Claude Code

起因4月初,Claude Code的源码泄露了。拿到源码之后通读了一遍,大概1,900个文件、512K行TypeScript代码。看完之后就有了一个想法:能不能用Go把它重写一遍?不是写个Demo玩玩,而是把所有功能都搬过来——CLI入口、LLM查询…...

告别网盘限速!八大平台直链解析工具终极指南

告别网盘限速!八大平台直链解析工具终极指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘 / 迅…...

别再只调参了!用PyTorch复现DCGAN人脸生成,我踩过的5个坑和3个调优技巧

别再只调参了!用PyTorch复现DCGAN人脸生成,我踩过的5个坑和3个调优技巧 当你在Colab上跑完最后一个epoch,看着生成器输出的那些扭曲五官,是否怀疑自己装了假的PyTorch?别急,这不过是DCGAN训练路上的常态。真…...

状态反馈极点配置实战:从可控性判断到反馈增益计算

1. 状态反馈极点配置入门指南 第一次接触状态反馈极点配置时,我也被那些专业术语搞得晕头转向。但后来发现,这其实就是给系统"调音"的过程 - 就像给音响设备调整高低音旋钮一样,我们可以通过调整反馈增益来改变系统的动态特性。 为…...

黑客入门3个月实战计划(附每日任务),新手照做就能从0到1

前言 新手学黑客,没有计划很容易“三天打鱼两天晒网”。本文给你制定一份3个月实战计划,分阶段拆解每日任务,从零基础到能独立做基础渗透测试,每天1-2小时,照做就能完成目标。全程合规,只在靶场练习。 一、…...

2026山东大学软件学院创新项目实训博客(一)

本周工作内容是生成部分开发文档,文档内容如下: 1. 文档目标 本文档用于指导项目团队基于 Spring Boot Vue AI 完成“智契通”系统研发,覆盖开发规范、模块划分、接口规划、测试方案、实施计划与交付物设计。 2. 项目开发目标 2.1 研发范围…...

字符串拼接用“+”还是 StringBuilder?别再凭感觉写了辜

前言 Kubernetes 本身并不复杂,是我们把它搞复杂的。无论是刻意为之还是那种虽然出于好意却将优雅的原语堆砌成 鲁布戈德堡机械 的狂热。平台最初提供的 ReplicaSets、Services、ConfigMaps,这些基础组件简单直接,甚至显得有些枯燥。但后来我…...

玩一玩微软的 bit 模型:BitNet. 一个 CPU 就能跑起来的大模型讣

一、 什么是 AI Skills:从工具级到框架级的演化 AI Skills(AI 技能) 的概念最早在 Claude Code 等前沿 Agent 实践中被强化。最初,Skills 被视为“工具级”的增强,如简单的文件读写或终端操作,方便用户快速…...

AI原生研发不是“加AI”,而是重构研发DNA(SITS2026白皮书核心框架首次解密)

第一章:什么是AI原生软件研发?SITS2026给你答案 2026奇点智能技术大会(https://ml-summit.org) AI原生软件研发不是对传统开发流程的简单增强,而是以大模型为第一公民、以提示工程与推理编排为基本范式、以LLM-as-OS架构为底层支撑的全新研发…...

保姆级教程:在Ubuntu 22.04上,用Chroot和xorriso定制你的专属服务器镜像(附离线包集成)

深度实战:Ubuntu 22.04离线镜像定制全流程解析 当你需要在隔离网络环境中批量部署数十台服务器时,每次手动配置无疑是一场噩梦。想象一下:每次部署都要重复安装相同的软件包、配置相同的系统参数、解决相同的依赖问题——这不仅效率低下&…...

第二十七章 灾备与演练:生产级数据库的增量备份、异地容灾与快速恢复预案

第二十七章 灾备与演练:生产级数据库的增量备份、异地容灾与快速恢复预案 在煤化工这样的大型连续性生产企业中,数据库不仅仅是存储代码和日志的地方,它是整个工厂的数字心脏。一次看似短暂的数据库宕机,在极客眼中可能只是 systemctl restart 的几秒钟,但在厂长眼中,那…...

三步解锁全网盘高速下载:开源直链解析助手终极指南

三步解锁全网盘高速下载:开源直链解析助手终极指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云盘…...

Excel设置单元格字体

...

终极网盘下载解决方案:LinkSwift 完整使用指南,告别限速烦恼

终极网盘下载解决方案:LinkSwift 完整使用指南,告别限速烦恼 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中…...

别再让API账单吓到你了!Gemini 3 Flash的`thinking_level`参数保姆级调优实战

别再让API账单吓到你了!Gemini 3 Flash的thinking_level参数保姆级调优实战 当开发者第一次看到Gemini API的月度账单时,那种震惊感不亚于发现信用卡被盗刷。我们团队曾经有个项目,仅仅因为没注意参数配置,单月API支出就超过了服务…...

DL/T 645与DL/T 698协议优劣对比与使用方法,一文看懂两者区别和使用方法!

目录 引言 一、协议背景与设计哲学 1.1 DL/T 645协议:面向过程的“点对点”设计 1.2 DL/T 698协议:面向对象的“系统级”设计 二、协议架构与技术特性对比 2.1 帧结构与数据表示 2.2 数据模型与扩展性 2.3 通信方式与物理层支持 三、安全机制对…...

告别手动标注!用μSAM和napari插件5分钟搞定显微图像分割(附保姆级配置流程)

告别手动标注!用μSAM和napari插件5分钟搞定显微图像分割(附保姆级配置流程) 在生物医学研究领域,显微图像分析一直是数据处理的瓶颈环节。传统的手动标注方式不仅耗时费力,还容易引入人为误差——研究人员常常需要花费…...

OBS StreamFX插件深度解析:12个高级特效实现原理与实战指南

OBS StreamFX插件深度解析:12个高级特效实现原理与实战指南 【免费下载链接】obs-StreamFX StreamFX is a plugin for OBS Studio which adds many new effects, filters, sources, transitions and encoders! Be it 3D Transform, Blur, complex Masking, or even …...

MySQL语句执行深度剖析:从连接到执行的全过程颈

开发个什么Skill呢? 通过 Skill,我们可以将某些能力进行模块化封装,从而实现特定的工作流编排、专家领域知识沉淀以及各类工具的集成。 这里我打算来一次“套娃式”的实践:创建一个用于自动生成 Skill 的 Skill,一是用…...

保姆级教程:手把手教你为ROS机器人定制Rviz多目标点导航插件(基于move_base)

从零构建ROS机器人专属Rviz导航插件:多目标点顺序导航实战指南 当你的ROS机器人需要在复杂环境中执行多点位任务时,一个可靠的多目标点导航插件能极大提升工作效率。本文将带你深入理解Rviz插件机制,并手把手教你如何基于开源代码定制适配自己…...

Qwen2.5-7B-Instruct完整指南:从部署到应用,一站式解决方案

Qwen2.5-7B-Instruct完整指南:从部署到应用,一站式解决方案 1. 引言:为什么你需要关注Qwen2.5-7B-Instruct? 如果你正在寻找一个既强大又能在本地安全运行的AI对话助手,那么Qwen2.5-7B-Instruct绝对值得你花时间了解…...

低空防御新利器:轻型雷视一体低空探测系统

...

【FDTD - 1D、2D、3D自由空间】位于模拟域中心的点源会产生电磁辐射,然后这种辐射在真空中传播附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室🍊个人信条:格物致知,完整Matlab代码及仿真咨询…...

不止于本地文件:教你改造MinerU API,让它能直接解析网盘或远程服务器上的PDF/Word

突破本地限制:用MinerU构建云端文档解析引擎的实战指南 当技术团队需要从海量PDF和Word文档中提取关键信息时,传统方案往往要求先将文件下载到本地再处理。这种模式在云存储时代显得笨拙且低效——想象一下,当你的文档分散在OSS、S3或企业网盘…...

2025年Scratch图形化编程三级考试真题解析与备考策略

1. 2025年Scratch三级考试真题深度解析 最近帮几个小朋友准备Scratch三级考试,发现很多孩子做题时容易陷入"看着会做但总选错"的困境。就拿2025年6月这套真题来说,表面看都是基础题,但每道题都藏着几个易错点。比如第一题的多边形绘…...

如何理解InnoDB的行级锁_记录锁与间隙锁Gap Lock的区别

Record Lock锁存在行,Gap Lock锁不存在的索引间隙;前者为点锁,后者为段锁,仅在REPEATABLE READ生效,Next-Key Lock是其与记录锁组合,用于防止幻读。Record Lock 锁的是“存在的行”,Gap Lock 锁…...

专业的成都全铝家具哪家好

在寻找成都专业的全铝家具定制服务时,四川方与圆铝作全铝家具有限公司无疑是值得考虑的优质选择。这家位于成都华阳滨江天樾2栋27楼2号的专业工作室,以其八年匠心深耕和独特优势,在成都全铝家具市场中脱颖而出。为什么选择方与圆铝作&#xf…...

内置“龙虾”的异地组网路由器!蒲公英X1 Pro重磅升级

蒲公英异地组网路由器X1 Pro重磅升级!首款内置“龙虾”的路由器来了!无需云服务器、无需额外电脑,在小巧的路由器里就能一键部署OrayClaw,拥有你的专属“龙虾”!它不仅仅是个会聊天的AI,在支持随心搭配大模…...

图像处理实战:用Python+OpenCV实现形态学开闭运算(附完整代码)

PythonOpenCV形态学实战:开闭运算解决文档图像修复难题 在数字化办公场景中,我们常遇到扫描文档存在噪点、文字断裂或笔画粘连的问题。传统图像编辑软件手动修复效率低下,而基于OpenCV的形态学操作能实现批量自动化处理。本文将以实际项目案例…...

Matlab r2023b Simulink 子系统封面自定义指南

1. 为什么需要自定义Simulink子系统封面? 作为一个从零开始学习Matlab Simulink的新手,我最初完全不明白为什么要在子系统上加封面。直到参与了一个机器人控制系统的团队项目,才深刻体会到这个功能的价值。想象一下,当你打开一个包…...