-
Notifications
You must be signed in to change notification settings - Fork 0
架构设计追踪:从 Claude Code 源码中借鉴的改进方向 #1
Copy link
Copy link
Open
Labels
architectureArchitecture design decisionsArchitecture design decisionsenhancementNew feature or requestNew feature or request
Description
背景
Claude Code v2.1.88 源码泄漏(2026-03-31),其中多个模块的设计对 Open Agent SDK 有借鉴价值。本 issue 追踪架构层面的设计决策和改进计划。
核心判断
不照搬 Claude Code 的模块结构——两者定位不同(CLI 产品 vs 嵌入式 SDK),Open Agent 当前的抽象更干净。但以下模块值得学习。
可借鉴模块
1. Context 压缩 / Token Budget
参考:
services/compact/
Claude Code 的分级压缩策略:
microCompact— 轻量压缩(截断大型 tool result)autoCompact— 自动触发阈值检测sessionMemoryCompact— LLM 生成上下文摘要grouping— 消息分组,决定哪些可裁哪些必须保留
Open Agent TODO: 实现 TokenBudget + ContextBuilder(已在 ARCHITECTURE.md Phase 2 规划)
2. Tool 并发执行
参考:
services/tools/toolOrchestration.ts
核心思路:partitionToolCalls 将工具调用分为并发安全和非安全两组
- 只读工具(FileRead、Grep、Search)→ 并发执行
- 写入工具(FileWrite、Bash)→ 串行执行
Open Agent TODO: AgentLoop 当前全串行,加 isConcurrencySafe 标记 + 并发分区
3. 权限规则表
参考:
types/permissions.ts,Tool.ts中的ToolPermissionContext
Claude Code 的声明式权限:
alwaysAllow / alwaysDeny / alwaysAsk规则匹配permissionMode: default / plan / bypass- 基于规则而非每次询问用户
Open Agent TODO: 扩展 onToolApproval 为声明式规则系统 ToolPermissionPolicy
4. 多 Agent 子任务
参考:
tools/AgentTool/,tools/TaskCreate|Get|Stop/,coordinator/
- 主 agent fork 子 agent 处理独立子任务
- 子 agent 有独立上下文和工具权限
- Agent Teams 协同模式
Open Agent TODO: 后续多 agent 场景时设计
保持不变的优势
以下设计 Open Agent 做得比 Claude Code 更好,不需要改:
- ✅
ChatProvider统一接口抽象(Claude Code 直接绑 Anthropic SDK) - ✅
sealed class事件模型(Dart 3 模式匹配 > TypeScript union) - ✅ 三包分层
core/ui/umbrella(纯 Dart 核心零 Flutter 依赖) - ✅ 不绑状态管理(Stream 优先,用户自选 Bloc/Riverpod)
实施优先级
| 优先级 | 模块 | Phase |
|---|---|---|
| P0 | TokenBudget + ContextBuilder | Phase 2 |
| P1 | Tool 并发执行 | Phase 2 |
| P1 | AnthropicProvider | Phase 2 |
| P2 | 权限规则表 | Phase 2 |
| P3 | 多 Agent 子任务 | Phase 4+ |
参考资料
- Claude Code 源码归档: sanbuphy/claude-code-source-code
- 架构文档:
docs/ARCHITECTURE.md - OpenClaw 研究:
docs/OPENCLAW_STUDY.md
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
architectureArchitecture design decisionsArchitecture design decisionsenhancementNew feature or requestNew feature or request