Go-Claw-Code 设计说明
Go 语言实现 Claude Code 风格 AI 编程助手
GitHub 仓库:https://github.com/gallifreyCar/go-claw-code-gallifrey-self-use
一、项目背景
基于 2026年3月31日泄漏的 Claude Code v2.1.88 源码架构分析,用 Go 语言实现一个类似的 AI 编程助手 CLI 工具。
为什么用 Go?
| 特性 | TypeScript (原版) | Go |
|---|---|---|
| 运行时 | Node.js/Bun | 单二进制 |
| 部署 | 需要 Node 环境 | 直接运行 |
| 性能 | 解释执行 | 编译优化 |
| 内存 | V8 内存模型 | GC + 值类型 |
| 依赖 | node_modules | 无外部依赖 |
二、架构设计
2.1 分层架构
参考泄漏代码的分层设计,采用清晰的分层架构:
1 | ┌─────────────────────────────────────────────────────────────┐ |
2.2 核心设计决策
Tool 接口设计
1 | type Tool interface { |
设计考量:
- 使用接口而非结构体,方便扩展新工具
RequiresConfirmation()支持危险操作的权限控制json.RawMessage保持参数灵活性
API 客户端抽象
1 | type APIClient interface { |
设计考量:
- 支持多 API 后端(Anthropic + OpenAI 兼容)
- 流式响应用 channel 实现,符合 Go 惯例
- 便于添加新的 API 提供商
System Prompt 优先级
1 | type PromptManager struct { |
设计考量:
- 参考 Claude Code 原版的 5 层优先级系统
- 让不同模式可以优雅覆盖默认行为
- 支持
__SYSTEM_PROMPT_DYNAMIC_BOUNDARY__缓存优化
三、技术选型
| 模块 | Go 库 | 选择理由 |
|---|---|---|
| CLI 框架 | cobra | 成熟、kubectl 同款 |
| TUI | bubbletea | Go 社区最佳 TUI 库 |
| 配置 | viper | 支持多格式、环境变量 |
| 日志 | zerolog | 高性能、结构化 |
| JSON Schema | jsonschema | 工具参数验证 |
四、目录结构
1 | go-claw-code-gallifrey-self-use/ |
设计考量:
internal/保证内部实现不被外部依赖pkg/放可被外部项目引用的公共代码cmd/放 CLI 入口,可扩展多个命令
五、实现路线图
Phase 1: 项目初始化 ✅
- [x] 创建 GitHub 仓库
- [x] 初始化 Go module
- [x] 写好 README.md
- [x] 创建目录结构
- [x] 添加 Makefile
- [x] 基础 CLI 框架
Phase 2: 核心框架
- [ ] API 客户端接口
- [ ] Anthropic API 实现(流式支持)
- [ ] OpenAI 兼容 API 实现
- [ ] 配置管理完善
Phase 3: 工具系统
- [ ] Tool 接口定义
- [ ] Bash 工具
- [ ] Read/Write/Edit 文件工具
- [ ] Glob/Grep 搜索工具
- [ ] 权限系统
Phase 4: Agent 核心
- [ ] 单 Agent 模式
- [ ] System Prompt 管理
- [ ] 消息循环
- [ ] 工具调用处理
Phase 5: 输出层
- [ ] —print 无头模式
- [ ] bubbletea TUI 框架
- [ ] 输入输出组件
Phase 6: 高级功能
- [ ] 多 Agent 协调
- [ ] Memory 系统
- [ ] MCP 支持
六、与原版差异
| 特性 | Claude Code | Go-Claw-Code |
|---|---|---|
| 语言 | TypeScript | Go |
| 运行时 | Node.js/Bun | 单二进制 |
| TUI | Ink (React) | Bubbletea |
| API | Anthropic only | Anthropic + OpenAI 兼容 |
| 配置 | .env | config.yaml + 环境变量 |
| 插件 | Skills | 计划支持 |
| MCP | 支持 | 计划支持 |
七、快速开始
1 | # 克隆仓库 |
创建时间:2026-04-01
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Gallifrey的计算机学习日记!
评论


