Qwen Code (Alibaba)

一句话定位

Qwen Code 是从 Google gemini-cli fork 出发(核心文件版权头至今仍署名 “Copyright 2025 Google LLC”)、但已大幅发散演化的终端编码 harness:自建 Managed Auto-Memory(Extract/Dream/Recall/Forget 四动词长期记忆)、Agent Teams(tmux + git-worktree 隔离的持久化多 agent 团队)、Skill 系统、plan-approval 门禁与多协议模型接入;其自身文档明确承认在 SubAgent frontmatter schema、SSRF guard、异步记忆预取等多个子系统上逆向参考甚至直接对标了 Claude Code 的设计,是一个”gemini-cli 底座 + Claude Code 设计语言”的 fast-follower 型 harness。

核心架构总览(目录结构关键路径 + 引用的 commit)

  • repo: https://github.com/QwenLM/qwen-code,分析基准 commit 57326e55be56df4d813759e893d966ed67e6fb4(提交时间 2026-07-06 17:05:48 +0000),2026-07-07 clone 分析。package.json 版本号 0.19.6(npm 包 @qwen-code/qwen-code;是否已发布到 npm registry 未核实,可能是开发中版本号)。License Apache-2.0。
  • Monorepo 关键 workspace:packages/core/(agent 引擎主体)、packages/cli/(终端交互层,含 nonInteractiveCli.ts 无头驱动);此外还有 packages/acp-bridgepackages/vscode-ide-companionpackages/zed-extensionpackages/channels/*(Telegram/DingTalk/微信/飞书 bot),本次未深入。
  • 关键路径(packages/core/src/ 下,除注明外):
    • core/turn.ts(670 行)—— Turn 类,单次模型请求的流式事件循环
    • core/client.ts(2999 行)—— GeminiClient.sendMessageStream,逐轮递归驱动器,MAX_TURNS=100
    • core/geminiChat.ts(3725 行)—— 聊天历史管理、tryCompress/compressFast 压缩、多 provider 分发
    • core/coreToolScheduler.ts(4881 行)—— 工具调用校验 → 权限(L3→L4→L5)→ 执行调度
    • utils/nextSpeakerChecker.ts(114 行)—— LLM 判定”是否该继续说话”的侧路查询
    • services/loopDetectionService.ts(905 行)—— 多启发式循环检测
    • packages/cli/src/nonInteractiveCli.ts(2078 行)—— 无头/CI 模式下真正的外层 while(true) 驱动循环
    • core/prompts.ts(1114 行)—— getCoreSystemPrompt() 动态系统提示组装
    • memory/manager.ts(1504 行)、dream.ts(165)、recall.ts(406)、extract.ts(216)—— Managed Auto-Memory 四动词生命周期
    • tools/tools.ts(926 行)、tools/tool-registry.ts(884 行)、tools/shell.ts(4952 行)
    • subagents/subagent-manager.ts(1548 行)、subagents/builtin-agents.ts(325 行)
    • agents/team/*.ts(TeamManager.ts、mailbox.ts、tasks.ts、identity.ts、leaderPermissionBridge.ts、promptAddendum.ts)
    • agents/runtime/workflow-orchestrator.ts(1826 行)+ workflow-budget/journal/sandbox/saved/stall.ts
    • skills/types.ts(348 行)、tools/skill.ts(574 行)、skills/skill-manager.ts
    • telemetry/services/chatRecordingService.ts(1474 行)
    • permissions/permission-manager.ts(1153 行)、config/approval-mode.tshooks/ssrfGuard.ts
    • packages/cli/src/utils/sandbox.ts(1047 行)
    • providers/(all-providers.ts、provider-config.ts)、core/tokenLimits.tscore/openaiContentGenerator/*
    • 文档:docs/developers/architecture.mddocs/declarative-agents-port.md(483 行)、docs/design/auto-memory/memory-system.md(510 行,中文)、docs/design/auto-compaction-threshold-redesign.mddocs/design/2026-05-15-async-memory-recall-design.md
    • 仓库根 CLAUDE.md 明确写道:Qwen Code 自身的开发工具是 Claude Code,AGENTS.md 才是实际约定文档。

Agent Loop(主循环 / 何时继续何时停)

  • 外层驱动分两条路径:交互式 CLI 由用户输入驱动;无头/CI 模式下由 packages/cli/src/nonInteractiveCli.tswhile(true) 外层循环驱动,且在退出前会排空 teammate 消息队列与 cron/通知队列。
  • 单轮内部由 core/client.tsGeminiClient.sendMessageStream 递归驱动:每轮设有会话级 MAX_TURNS = 100 硬上限;一次模型响应的流式增量由 core/turn.tsTurn 类逐事件处理(文本、思考、工具调用、工具结果)。
  • “是否该继续”的判定不是简单的”还有没有工具调用”,而是引入了 utils/nextSpeakerChecker.ts(114 行)——一次独立的、LLM 判定式的侧路查询(“next speaker”检查),用于决定模型是否应该继续说话而非直接把控制权交还用户,这是对 gemini-cli 原有机制的沿用/加强。
  • services/loopDetectionService.ts(905 行)实现至少 5 类循环检测启发式:工具调用重复、内容重复、思考(thought)重复、文件读取停滞、shell 命令停滞。其中 TOOL_CALL_LOOP_THRESHOLD = 5 被显式设定为低于 DashScope 服务端”检测到重复工具调用”拒绝阈值,目的是让客户端先于服务端 400 报错主动断循环(inline 注释引用 issue #5019)——这是”loop 检测阈值围绕特定后端服务端行为调参”的具体证据,而非通用设计。
  • 定性:这是一个 ReAct 式开放循环(工具调用→观察→继续判断),但叠加了显式的 turn 数硬上限、独立 LLM 侧路续讲判定、以及多启发式循环熔断,控制粒度比纯 ReAct 更精细。

记忆与上下文管理(压缩、长期记忆、会话持久化)

  • 短期上下文压缩:geminiChat.tstryCompress/compressFastdocs/design/auto-compaction-threshold-redesign.md 记录了一次三档(warn/auto/hard)压缩阈值重设计,文档中明确将设计基准对标 Claude Code 的 autoCompact.ts 绝对 token 阶梯设计,并说明了 Qwen Code 为何改用不同方案(细节见该设计文档存档副本,未在本 dossier 展开逐条差异)。
  • 长期记忆:Managed Auto-Memory,四个动词构成完整生命周期,实现在 packages/core/src/memory/
    • Extractextract.ts,216 行)——每轮结束后跑一个 LLM 驱动的抽取 agent,把新的用户偏好/反馈/项目/参考事实写入记忆文件,用逐项目的 extract-cursor.json 偏移量确保不重复处理历史。
    • Dreamdream.ts,165 行)——后台整理周期:去重/合并记忆主题文件、重建 MEMORY.md 索引,可定时或手动 /dream 触发。
    • Recallrecall.ts,406 行)——检索侧;docs/design/2026-05-15-async-memory-recall-design.md 记录了一个 fire-and-forget 式异步预取设计,文档明确写道其模式对标 Claude Code 上游的 startRelevantMemoryPrefetch/settledAt 模式
    • Forget——记忆生命周期的第四动词(manager.ts 内,具体删除/过期策略未逐行核对,NOTES 未展开)。
    • 存储位置:~/.qwen/projects/<sanitized-git-root>/memory/,可用 QWEN_CODE_MEMORY_BASE_DIR 改基目录,或 QWEN_CODE_MEMORY_LOCAL=1 切到项目本地 .qwen/memory/
    • 官方中文设计文档 docs/design/auto-memory/memory-system.md(510 行)为该系统提供完整设计说明,已存档全文。
  • 会话持久化:services/chatRecordingService.ts(1474 行)把完整会话记录为 JSONL(~/.qwen/tmp/<project_id>/chats/),树状结构(uuid/parentUuid)支持分支,立即写入(非批量),自动生成会话标题。

工具体系(定义/调用协议/注册/权限)

  • 核心接口 tools/tools.ts(926 行):ToolInvocation 接口定义 getDescriptiontoolLocationsgetDefaultPermission(工具自身的 L3 层内在默认权限:allow/ask/deny)、getConfirmationDetailsexecute
  • 注册:tools/tool-registry.ts(884 行),ToolRegistry.registerTool,惰性 ToolFactorydiscoverToolsForServer 做 MCP 工具发现,getFunctionDeclarations 导出给模型的 function-calling schema。
  • tools/shell.ts(4952 行)实现较复杂:基于 AST 的只读命令分类(isShellCommandReadOnlyAST)、hasShellSubstitution 在剥离包装前对原始命令做前置检查(阻断 $(...)/反引号/<()/>() 注入)、复合命令按子命令拆分单独确认、针对 sed 编辑的特殊处理。
  • 工具清单远超基础文件/shell/web 操作,覆盖多 agent 编排与协作:agent/agent.ts(3458 行,子 agent 派发)、tools/skill.ts(574 行)、task-create/task-list/task-update/task-stop.ts(分布式任务系统)、team-create/team-delete/team-lifecycle/team-plan-approval.ts(Agent Teams)、cron-create/cron-delete/cron-list.ts(定时任务)、enter-worktree.ts/exit-worktree.ts(子 agent 的 git worktree 隔离)、mcp-*.ts(MCP 客户端/连接池/发现/重试)、askUserQuestion.tsenterPlanMode.ts/exitPlanMode.tsrecord-artifact.tsmonitor.tssend-message.ts(队友邮箱通信)。

Prompt 设计(系统提示结构、动态组装)

  • core/prompts.ts(1114 行,已全文存档)的 getCoreSystemPrompt() 动态组装系统提示:按沙箱状态分支(macOS Seatbelt / 通用沙箱 / 无沙箱三种不同措辞)、按是否处于 git 仓库分支、按不同模型给出不同的工具调用示例、压缩提示、plan-mode 提醒、“arena”提醒(见下)、洞察提示等多个可插拔片段。
  • 环境变量覆盖:QWEN_SYSTEM_MD(设为路径或 0/false 可完全替换基础提示,见 prompts.ts:115-120);QWEN_WRITE_SYSTEM_MD(把默认提示导出到文件,prompts.ts:325-327)。
  • 系统提示中显式硬编码一条反绕过规则:“如果某个工具调用被拒绝,不要尝试通过其他工具、shell 间接调用、生成脚本、alias、符号链接、配置改动、hook、命令文件、MCP 配置、编码后的 payload 或等效路径去完成被拒绝的操作”——这是一条针对性很强的安全提示词条款。
  • 内置子 agent(general-purposeExplore,定义于 subagents/builtin-agents.ts)的系统提示与 Claude Code 内置 Task 工具子 agent 提示几乎逐字相同(如 “Do what has been asked; nothing more, nothing less”、“NEVER proactively create documentation files” 等原话),这是 NOTES 中明确记录的直接借鉴证据。

Router / 编排(任务分解、多 agent、子 agent)

  • 子 agent:subagents/subagent-manager.ts(1548 行)管理内置与自定义子 agent;docs/declarative-agents-port.md(483 行,已全文存档)记录了子 agent frontmatter schema(name/description/model/tools/permissionMode/maxTurns/color/mcpServers/hooks,另有 effort/memory/isolation/initialPrompt/skills 标注为 deferred 未实现字段)是通过对 Claude Code 2.1.168 原生二进制做字符串提取(strings on /private/tmp/cc-2.1.168/package/claude)逆向工程得到,而非来自任何公开规范——这是本次调研中借鉴证据链最直接的一条。
  • Agent Teams(agents/team/*.ts):持久化多 agent”团队”,TeamFile 存于 ~/.qwen/teams/{team-name}/config.json;成员可作为 tmux pane 或独立进程运行,各自拥有独立 git worktree(worktreePath)、独立权限模式、独立模型;分布式 SwarmTask 对象持久化在 ~/.qwen/tasks/{teamName}/{id}.jsonsend-message.ts 工具实现邮箱式跨 agent 消息。
  • 独立的声明式多步 workflow 系统:agents/runtime/workflow-orchestrator.ts(1826 行)+ workflow-budget/journal/sandbox/saved/stall.ts,据 docs/declarative-agents-port.md 交叉引用(issue PR #4732),该 workflow 功能是对齐/移植自 Claude Code 的 workflow 特性。
  • 这两套编排机制(SubAgent 派发 + Agent Teams 持久化协作 + Workflow 声明式多步)是并行存在、分层的三套系统,而非单一路由器。

Skill / 插件体系

  • skills/types.ts(348 行)定义 SkillConfig:SKILL.md YAML frontmatter 字段包括 name/description/allowedTools/hooks/model 覆盖、level(project/user/extension/bundled)、argument-hintwhen_to_usedisable-model-invocationuser-invocablepaths(glob 门控的条件激活)、priority
  • 安全细节:路径穿越安全的 glob 校验(拒绝绝对路径 / .. 段);skill 名称限制在安全的 Unicode 字符集范围内,以防止通过 skill 名称做 prompt injection。
  • tools/skill.ts(574 行)是模型调用的 Skill 工具本体,用于加载某个 skill 的指令;skills/skill-manager.tsskill-load.tsskill-activation.ts 负责发现/加载/条件路径激活逻辑。
  • Skill 可通过 CLI 的 /<skill-name> 斜杠命令直接调用。整体设计(SKILL.md + YAML frontmatter + 逐 skill hooks + allowedTools 自动授权)与 Claude Code 的 Skill 设计几乎一致。

自进化能力(自我改进 / 学习型记忆 / eval 驱动纠错)

  • Managed Auto-Memory 的 “Dream” 周期(memory/dream.ts + dreamAgentPlanner.ts)是一个后台 agent 运行的整理/去重/合并流程,会重建 MEMORY.md 索引,可定时或手动触发。
  • “Extract”(memory/extract.ts + extractionAgentPlanner.ts)在每轮结束后运行一个 LLM 驱动的抽取 agent,把新事实写入记忆文件,用逐项目游标避免重复处理。
  • 存在 skillReviewAgentPlanner.ts / skillReviewNudge 机制:一个会审阅/推动”从重复模式中创建新 Skill”的 agent,是针对 Skill 库本身的、eval 驱动的自我改写循环。
  • 定性:以上均为会话/项目级的上下文自我改进机制,不涉及模型权重训练——仓库中未发现任何 session/trajectory 反哺模型微调或 RLHF 的证据;integration-tests/terminal-bench/ 是用于测试 harness 自身的本地 eval 集成,不是训练数据管道。README 声称”Qwen Code 正在使用自己的 agent 和模型来提交 issue、发 PR、做代码审查、跑测试”,但这是对 harness 开发过程的 dogfooding 描述,不是文档化的训练数据反馈机制。

可观测性(日志 / trace 格式)

  • telemetry/ 目录实现完整 OpenTelemetry 追踪/指标:loggers.tsmetrics.tsresource-attributes.tsdaemon-tracing.tsdaemon-metrics.tsevent-loop-lag-metrics.tsqwen-logger/ 子目录。另有多篇专项设计文档(telemetry-llm-request-timing-design.mdtelemetry-outbound-propagation-design.mdtelemetry-resource-attributes-design.mdtelemetry-subagent-spans-design.mdworkflow-tracing-gaps.md,本次仅确认标题/路径存在,未逐篇通读)。
  • services/chatRecordingService.ts(1474 行)把会话完整记录为 JSONL(~/.qwen/tmp/<project_id>/chats/),树状 uuid/parentUuid 结构支持分支,记录用户消息/助手轮次/工具调用与结果/token 用量/思考内容,立即(非批量)写入,自动生成会话标题。
  • coreToolScheduler.ts 为每次工具调用开一个 OTel span(startToolSpan),覆盖 validating→awaiting_approval→executing 状态,带 tool.call_id/tool_name 属性;inline 注释提到为兼容迁移期同时发出非命名空间化的旧 key(引用 issue 3731)。

安全与权限(审批门、密钥管理)

  • permissions/permission-manager.ts(1153 行)实现基于规则的 allow/ask/deny 引擎,优先级 deny > ask > allow > default(未匹配);规则可以是会话级(内存中运行时添加,例如 skill 的 allowedTools 授权)或持久化(settings.json);语法与 Claude Code 一致(如 Bash(git *)Editmcp__server__tool)。
  • config/approval-mode.ts 定义 ApprovalMode 枚举:plan | default | auto-edit | auto | yolo
  • coreToolScheduler.ts 实现 L3→L4→L5 三层权限流:L3 为工具自身内在默认权限(如只读 shell 命令经 AST 分类后自动放行),L4 为 PermissionManager 规则覆盖,L5 为结合 ApprovalMode 的最终决策(plan 模式即便规则是 allow 也强制转 ask;auto 模式下有”受保护写入守卫”,对特定 shell/文件模式即便判定为 allow 也可强制转审)。
  • hooks/ssrfGuard.ts 阻止 HTTP hook 访问私有/链路本地/云元数据 IP 段(169.254.169.254、100.64.0.0/10 含阿里云元数据 IP 100.100.100.200、RFC1918 段),代码/文档明确写”Aligned with Claude Code’s ssrfGuard.ts behavior”。
  • mcp/token-storage/keychain-token-storage.ts 用 OS 密钥链(经 keytar)存储 MCP server OAuth 凭据,keytar/密钥链不可用时有回退路径。
  • qwen/qwenOAuth2.ts 是 Qwen 自有的 OAuth2 设备码流程(https://chat.qwen.ai/api/v1/oauth2/device/code),用于免费/OAuth 认证层级,配合 SharedTokenManager 做 token 刷新。
  • plan-gate/planApprovalGate.ts + gateReviewAgents.ts:plan 模式专用审批门(agent 提出计划,须获得用户/审阅者显式批准才能执行);同一机制也用于 Agent Teams(team-plan-approval.ts 工具),队友的计划需队长审批。
  • 系统提示中的反绕过条款见上文”Prompt 设计”一节。

沙箱与执行隔离

  • packages/cli/src/utils/sandbox.ts(1047 行)实现整进程级沙箱:macOS Seatbelt(sandbox-exec,6 种 .sb profile 变体:permissive/restrictive × open/closed/proxied,位于 packages/cli/src/utils/sandbox-macos-*.sb)以及 Docker/Podman 容器沙箱(镜像 ghcr.io/qwenlm/qwen-code:<version>,配置于根 package.jsonconfig.sandboxImageUri)。
  • 这是继承自 gemini-cli 的整 CLI 进程级沙箱,与工具级的 PermissionManager 门控是互补但不同层次的机制——系统提示对”macOS Seatbelt / 通用沙箱 / 无沙箱”三种情况有不同措辞分支,向用户解释错误时行为不同。
  • agents/runtime/workflow-sandbox.tstools/enter-worktree.ts/exit-worktree.ts 为子 agent/workflow 步骤/队友提供基于 git worktree 的隔离(独立工作目录+分支,是文件系统/git 层隔离而非 OS 级沙箱)。

与模型的协同设计

  • providers/all-providers.tsprovider-config.ts)是真正的多 provider 抽象层:OpenAI 兼容、Anthropic、Gemini、DashScope(阿里云 Qwen 服务端点)、本地 Ollama/vLLM 均支持——不是 Qwen 模型专属锁定的 harness。
  • core/tokenLimits.ts 的 token 上限表覆盖多家厂商模型(GPT-5.x、DeepSeek V4、MiniMax-M2.5、通用 200k/1M 窗口等),进一步印证其多模型通用设计定位。
  • core/openaiContentGenerator/provider/dashscope.ts 做 DashScope 专属的 provider 探测(对 dashscope.aliyuncs.com / dashscope-intl / 阿里内网域名 / Qwen OAuth 的域名匹配)与请求整形。
  • core/openaiContentGenerator/streamingToolCallParser.ts 是一个手写的流式工具调用参数增量 JSON 修复解析器,代码注释明确说明动机是”工具调用到达时 chunk 形态各异……可能缺 ID、缺名字,或索引不一致”,覆盖各类 OpenAI 兼容后端(包括 vLLM 承载的 Qwen 模型)——这是”围绕真实模型/serving 栈的不规整流式输出做协同适配”的具体证据,而非假设干净的 OpenAI 规范流式格式。
  • core/openaiContentGenerator/taggedThinkingParser.ts 单独解析 <think> 标签式推理内容(Qwen3/DeepSeek 风格的 tagged thinking),与 OpenAI 的 reasoning_content 字段分开处理。
  • 循环检测器的 TOOL_CALL_LOOP_THRESHOLD = 5 被显式设定为低于 DashScope 服务端”检测到重复工具调用”拒绝阈值(见上文 Agent Loop 一节),是”客户端逻辑围绕特定后端服务端行为调参”的直接例子。

轨迹利用(session/trajectory 是否反哺训练/评测)

  • 仓库中未发现训练/RLHF 反馈管道。chatRecordingService.ts 产出的 JSONL 会话日志仅用于:本地会话续接/分支、自动生成会话标题;README 中提到的”用自己的 agent 和模型来提交 issue/PR/审查/跑测试”是对 harness 自身开发过程的 dogfooding 描述,并非文档化的数据管道。
  • integration-tests/terminal-bench/ 是本地 eval 集成(terminal-bench 基准),用于测试 harness 本身,不是训练数据生产管道。
  • 结论:会话轨迹的利用范围严格限于本地/会话级复用(resume、分支、标题生成),未发现反哺模型训练或系统性反哺评测集的证据。

与同类 harness 的关键差异(1-3 条,可以先留一句概述,后续 synthesis 阶段会做跨 harness 对比)

  • 最突出的差异不在于某项技术设计本身,而在于其借鉴路径的显式性和文档化程度:子 agent frontmatter schema 直接来自对 Claude Code 二进制的 strings 逆向(docs/declarative-agents-port.md),SSRF guard、异步记忆预取等多处代码/文档明确写”对标 Claude Code”字样——这在已调研的其他 harness 中未见如此坦白的记录。
  • 是少数把”持久化多 agent 团队”(tmux pane + 独立 git worktree + 独立权限/模型 + 分布式任务 + 邮箱通信)做成一等公民、且与”子 agent 派发”、“声明式 workflow 编排”三套机制并行共存的 harness,而非单一路由抽象。
  • 多 provider 支持不是浅层适配,而是深入到流式工具调用解析、tagged-thinking 解析、循环检测阈值这些细节层面针对不同后端(尤其 DashScope/vLLM)做了协同调参,说明其”model-coevolution”更多体现为”serving 层杂音适配”而非”围绕单一模型能力做提示词优化”。
  • 详细的跨 harness 系统性对比留待 synthesis 阶段。

原始源码定位

  • repo: https://github.com/QwenLM/qwen-code
  • commit/version analyzed: 57326e55be56df4d813759e893d966ed67e6fb4(2026-07-06 17:05:48 +0000),package.json version 0.19.6
  • 关键文件列表(相对路径):
    • packages/core/src/core/turn.ts
    • packages/core/src/core/client.ts
    • packages/core/src/core/geminiChat.ts
    • packages/core/src/core/coreToolScheduler.ts
    • packages/core/src/utils/nextSpeakerChecker.ts
    • packages/core/src/services/loopDetectionService.ts
    • packages/cli/src/nonInteractiveCli.ts
    • packages/core/src/core/prompts.ts
    • packages/core/src/memory/manager.ts
    • packages/core/src/memory/dream.ts
    • packages/core/src/memory/recall.ts
    • packages/core/src/memory/extract.ts
    • packages/core/src/tools/tools.ts
    • packages/core/src/tools/tool-registry.ts
    • packages/core/src/tools/shell.ts
    • packages/core/src/subagents/subagent-manager.ts
    • packages/core/src/subagents/builtin-agents.ts
    • packages/core/src/agents/team/*.ts
    • packages/core/src/agents/runtime/workflow-orchestrator.ts
    • packages/core/src/skills/types.ts
    • packages/core/src/tools/skill.ts
    • packages/core/src/telemetry/*
    • packages/core/src/services/chatRecordingService.ts
    • packages/core/src/permissions/permission-manager.ts
    • packages/core/src/config/approval-mode.ts
    • packages/core/src/hooks/ssrfGuard.ts
    • packages/core/src/mcp/token-storage/keychain-token-storage.ts
    • packages/core/src/qwen/qwenOAuth2.ts
    • packages/core/src/plan-gate/planApprovalGate.ts
    • packages/cli/src/utils/sandbox.ts
    • packages/core/src/providers/all-providers.ts
    • packages/core/src/core/tokenLimits.ts
    • packages/core/src/core/openaiContentGenerator/provider/dashscope.ts
    • packages/core/src/core/openaiContentGenerator/streamingToolCallParser.ts
    • packages/core/src/core/openaiContentGenerator/taggedThinkingParser.ts
    • docs/developers/architecture.md
    • docs/declarative-agents-port.md
    • docs/design/auto-memory/memory-system.md
    • docs/design/auto-compaction-threshold-redesign.md
    • docs/design/2026-05-15-async-memory-recall-design.md

一手源存档(sources/)

/Users/zhao/projects/self-wiki/ai-research/sources/harness/qwen-code/ 下:

  • NOTES.md —— 本次调研的完整逐维度笔记(本 dossier 的直接来源)
  • prompts.ts —— core/prompts.ts 全文存档
  • turn.ts —— core/turn.ts 全文存档
  • architecture.md —— docs/developers/architecture.md 官方架构概览文档存档
  • memory-system-design.md —— docs/design/auto-memory/memory-system.md 全文存档(中文原文)
  • auto-compaction-threshold-redesign.md —— 压缩阈值重设计文档存档
  • declarative-agents-port.md —— SubAgent frontmatter schema 逆向工程设计文档存档(含对 Claude Code 二进制 strings 提取的记录)

本次未完整深挖、留待后续(据 NOTES 明确标注,非编造遗漏):agents/arena/ 子系统;daemon 子系统(docs/developers/daemon/ 等,IDE/桌面/IM-bot 集成用持久化守护进程);packages/acp-bridgepackages/vscode-ide-companionpackages/zed-extensionpackages/channels/*(Telegram/DingTalk/微信/飞书 bot 集成)。