Skip to content

[docs] Deep-dive: claude-agent-sdk vs codex-sdk adapter comparison #18

@s2agi

Description

@s2agi

背景

anet 现在内置 3 个 runtime:

  • claude-agent-sdk — Anthropic 官方 @anthropic-ai/claude-agent-sdk
  • codex-sdk — OpenAI 官方 @openai/codex-sdk
  • claude-code-cli — spawn 本机 claude 二进制(不属于 SDK 范畴)

前两个 SDK 在 anet 里的接入语义、能力边界、session 处理、tool 注册、streaming、token 计费、错误处理等没有专门系统化对比docs-site/docs/guide/runtimes.md 给的是 user-facing how-to,对"想自己接新 SDK"或"想理解 anet 怎么 wrap SDK"的 contributor 不够深。

目标

通信SDK马 出一份 SDK adapter 深度对比,结论落 docs。

调研维度(建议)

维度 claude-agent-sdk codex-sdk
package / 版本
API entry(query / thread / etc.)
Session 语义(id 来源 / 持久化 / resume 接口)
Tool 注册(MCP / 内置)
Streaming(SSE / async iterator / Promise)
Token 计费 / 预算(--max-budget 谁实现)
错误处理 + 重试
多 turn 行为 + history 限制
ANTHROPIC_BASE_URL / 等价机制(路由到 MiniMax / DeepSeek / Codex provider)
settingSources / 项目隔离
breaking change cadence + 历史
anet wrapper 关键代码位置 agent-node/src/cli.ts:546 区域 agent-node/src/cli.ts:673 区域

交付物

  • 新文件 docs-site/docs/guide/sdk-deep-dive.md + EN 镜像 docs-site/docs/en/guide/sdk-deep-dive.md
  • 内容:对比表 + 各 SDK 接入注意事项 + anet wrapper 怎么收敛差异 + 想加新 runtime(gemini-cli / qwen-code 等)应该怎么照葫芦画瓢
  • .vitepress/config.ts ZH+EN sidebar 加链接到新文件
  • docs-site/docs/guide/runtimes.md 末尾加"想深入?→ SDK Deep-dive"指引

不要做

  • 不改 cli.ts / agent-node 源码(纯文档 + 调研)
  • 不发新 npm 版本
  • 不动 hub / dashboard

流程

  • #15 Phase 0 PR pipeline 走 worktree + PR
  • worktree 路径:~/anet-work/sdk-deep-dive/
  • 分支:docs/sdk-deep-dive
  • PR description 用新 template,Closes # 这个 issue

验收

  • 文档构建 npm run build 通过无 dead link
  • ZH + EN 内容齐
  • sidebar 能跳到新文档
  • 对比表至少覆盖上方"调研维度"表里列的项

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationenhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions