为何 Git DAG 适合做共享记忆,TaoToken 只给 AutoResearch Key

为何 Git DAG 适合做共享记忆,TaoToken 只给 AutoResearch Key 1. Agora 的 Git DAG 记忆模型为什么 append-only 比对话历史更适合 AutoResearch在复现 Agora 这类“用 Git 只追加 DAG 当共享记忆”的集体 AutoResearch 时最先撞上的通常不是 Git 合并而是 Claude Code 的settings.json里ANTHROPIC_BASE_URL仍指向旧供应商worker 调用出现 401/404Codex 的config.toml又把ANTHROPIC_*塞进 OpenAI 兼容段。要拿到可审计的 AutoResearch Key可以先到 TaoToken 官网https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_contentgit-dag-intro创建Base URL 统一填 https://taotoken.net/api。Agora 的关键选择是让 Git 仓库承担共享记忆而不是把多个智能体的上下文塞进一个不断被覆盖的向量库。每一次结果写入、每一次洞察提炼、每一次验证结论都用 commit 固化任何人都能沿着 DAG 检出并复现。这个设计听起来像“把 Git 当数据库”但真正值得讨论的是为什么是 DAG而不是聊天记录、KV 或者普通文件目录。先看 AutoResearch 的任务形态。一个研究循环往往包含产生假设、检索材料、执行小实验、记录结果、提炼洞察、交叉验证、修正假设。传统做法是把这些内容写进 messages 数组或者存到向量库。问题是一旦上下文被截断或者向量索引被重建某条洞察从哪来、哪次验证推翻了哪个结论就很难审计。Git DAG 的优势恰好在这里commit 是内容寻址的父指针形成有向无环图分支和合并保留探索路径git show、git log --graph、git bisect可以沿着历史定位变化。但 Git DAG 不是银弹。它适合结构化文本、JSON、Markdown、小型实验摘要、验证结论不适合直接放大模型权重、GB 级数据集、频繁覆盖的二进制产物。它还会带来治理问题commit message 怎么写谁有权限提交冲突如何处理密钥是否会误提交。AutoResearch 场景下最稳妥的边界是模型调用走 TaoToken 的 Key 与 Base URL研究记忆走本地 Git 仓库调用日志作为 JSONL 与 commit 一起记录。这样既不把生产库暴露给智能体也不把不可复现的聊天上下文当作研究资产。从架构权衡看Agora 式 Git DAG 的吸引力在于三个属性。第一只追加语义降低误删风险历史不会被静默覆盖。第二内容寻址让结果可检出commit hash 就是研究对象的指纹。第三分支合并天然表达“并行探索”和“结论汇合”。如果你的 AutoResearch 需要跨天、跨模型、跨 agent 复盘Git DAG 比单纯对话历史更接近科研记录本。TaoToken 在这个链路里只承担模型调用入口给一个 AutoResearch Key配置 Base URLhttps://taotoken.net/api让 Claude Code、Codex 或 CC Switch 能稳定发出请求并留下调用日志。记忆仍然在本地 Git 中审计仍然由读者本地命令完成。2. 把 TaoToken 放进 AutoResearch 调用链Key、Base URL 与调用日志的三层边界在 AutoResearch 里供应商接入最好拆成三层不要混在一起。第一层是工具配置层决定 Claude Code、Codex、CC Switch 用哪个 Base URL 和 Key。第二层是调用层决定请求发往哪个模型、如何重试、如何记录延迟和状态。第三层是记忆层决定结果如何写入 Git commit如何形成 DAG。很多 401/404 不是模型问题而是第一层配置串了Claude Code 的ANTHROPIC_*被复制到 Codex或者 Base URL 多写了路径。先准备 Key。到 TaoToken 官网https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_contentgit-dag-key进入控制台创建 AutoResearch 场景使用的 Key。本文统一用占位符YOUR_API_KEY不要把真实 Key 写进仓库。Base URL 填https://taotoken.net/api注意Base URL 不加 UTM 参数。UTM 只用于本文里的官网跳转和 deep link不要写进settings.json、config.toml或 SDK 初始化。否则部分客户端会把查询参数拼进请求路径导致 404。调用日志建议用 JSONL一行一次请求。字段至少包含时间戳、任务 ID、模型 ID、Base URL、延迟、状态、错误码、commit hash。日志本身也可以 commit但不要包含 Key。示例如下{ts: 1760000001, task_id: ar-001, model: YOUR_MODEL_ID, base_url: https://taotoken.net/api, latency_s: 1.842, status: ok, http_code: 200, commit: a1b2c3d} {ts: 1760000009, task_id: ar-002, model: YOUR_MODEL_ID, base_url: https://taotoken.net/api, latency_s: 0.931, status: rate_limited, http_code: 429, retry_after_s: 5}这三层边界带来的好处是排障快。模型回答不对先看调用层日志请求是否 200模型 ID 是否匹配延迟是否异常。Git 历史不对先看记忆层commit 是否落盘父指针是否分叉验证结论是否指向了错误的结果 commit。Key 权限不对先看工具配置层Claude Code 是否读到了settings.jsonCodex 是否读到了config.tomlCC Switch 是否选中了 TaoToken 供应商。还有一个容易忽略的点不要把 MCP 或 Agent 直连 Oracle、MySQL、生产库。AutoResearch 如果要验证数据应该由读者在本地执行 SQL 或命令把脱敏结果写入文件再让模型对文件内容做归纳最后提交为 Git commit。这样 Git DAG 记录的是可审计的研究输入和结论而不是不可控的生产库访问路径。3. 架构对照图论文里的 commit DAG 与 TaoToken 接入后的可审计链路下面用文本图对照 Agora 式共享记忆和 TaoToken 接入后的 AutoResearch 链路。图里不涉及外部链接也不使用 mermaid。Agora 论文式共享记忆 Task / Hypothesis | v ---------------- commit(result) ---------------- | Researcher A | ------------------------- | Git DAG | ---------------- | append-only | | | result | | commit(insight) | insight | v | validation | ---------------- ---------------- | Researcher B | ------------------------- | ---------------- | | v | commit(validation) git log --graph v git show hash ---------------- git bisect | Verifier | ------------------------- 可检出、可复现 ---------------- TaoToken 接入后的可审计链路 Claude Code / Codex / CC Switch | | ANTHROPIC_* 或 config.toml 独立配置 | Base URL https://taotoken.net/api v TaoToken AutoResearch Key | v 模型对话 / 研究模型 | | 返回结果 调用日志 v 本地 AutoResearch 脚本 | | 写 results/ insights/ validations/ | 写 logs/taotoken_calls.jsonl v Git commit / Git DAG | v git log --graph --oneline --decorate --all这张图里有两条边界。上面是论文里的共享记忆边界Git 只追加 DAG 承担集体研究记忆。下面是工程接入边界TaoToken 只提供 Key 和 Base URL调用日志由本地脚本落盘Git commit 由本地命令生成。不要把两者混成一个“云记忆”。Git 仓库可以在本地、私有远端或团队内部托管但研究内容的审计权应该留在团队手里。架构对照后可以得出一个实用结论Git DAG 适合做共享记忆因为它把“研究结果是什么”和“研究结果如何产生”绑定在同一个内容寻址结构里。TaoToken 适合做 AutoResearch 的模型调用入口因为只需要一个 Key 和一个 Base URL就能让 Claude Code、Codex、CC Switch 接入并把调用日志作为研究过程的一部分。两者组合时模型调用是外部能力Git DAG 是内部记忆日志是连接证据。4. Claude Code settings.json CC Switch 三件套配置让 AutoResearch worker 走 TaoTokenClaude Code 侧使用settings.json和ANTHROPIC_*环境变量。推荐把配置放在项目级或用户级settings.json不要把 Key 提交到 Git。示例中的YOUR_CLAUDE_MODEL_ID、YOUR_FAST_MODEL_ID请从 TaoToken 模型对话页或控制台确认后替换。官网入口再放一次便于创建 Keyhttps://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_contentgit-dag-claude-config。{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: YOUR_API_KEY, ANTHROPIC_MODEL: YOUR_CLAUDE_MODEL_ID, ANTHROPIC_SMALL_FAST_MODEL: YOUR_FAST_MODEL_ID } }如果当前 Claude Code 版本使用ANTHROPIC_AUTH_TOKEN可以按同一思路配置为{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_AUTH_TOKEN: YOUR_API_KEY, ANTHROPIC_MODEL: YOUR_CLAUDE_MODEL_ID, ANTHROPIC_SMALL_FAST_MODEL: YOUR_FAST_MODEL_ID } }配置完成后在本地终端执行claude --version claude -p 用三句话说明 Git DAG 适合共享记忆的原因如果返回 401优先检查settings.json是否被当前项目读取以及ANTHROPIC_API_KEY或ANTHROPIC_AUTH_TOKEN是否与 TaoToken 控制台创建的 Key 一致。如果返回 404检查 Base URL 是否误写成https://taotoken.net/api/v1/chat/completions之类完整路径。工具配置里只填https://taotoken.net/api。CC Switch 侧可以按“三件套”理解供应商、Base URL、Key。在 CC Switch 中新增 TaoToken 供应商时按下面填写字段建议值Provider NameTaoTokenBase URLhttps://taotoken.net/apiAPI KeyYOUR_API_KEYModel从 TaoToken 模型页确认后填写备注AutoResearch 专用不混用生产 Key切换后再回到 Claude Code 或 Codex 执行一次最小请求。AutoResearch worker 不需要额外插件。建议把 worker 的 system prompt 写成“只输出可验证要点输出中包含假设、证据、反例、下一步”这样提交到 Git 的 commit 内容更接近研究记录而不是聊天记录。另外不要把 Claude Code 的ANTHROPIC_*配置复制到 Codex。Codex 使用config.toml字段体系不同。混用会造成请求格式不匹配表现为 400 或 404而不是单纯的 Key 错误。5. Codex config.toml 配置不要混用 ANTHROPIC_* 与 OpenAI 兼容字段Codex 侧使用config.toml。这里继续坚持一条原则Codex 不读ANTHROPIC_*。你需要用 Codex 自己的 provider 字段把 Base URL 指向https://taotoken.net/apiKey 通过环境变量读取。下面是一个可复制的起点。model YOUR_CODEX_MODEL_ID model_provider taotoken model_reasoning_effort medium [model_providers.taotoken] name TaoToken base_url https://taotoken.net/api env_key TAOTOKEN_API_KEY wire_api chat然后在 shell 中导出 Key 并运行export TAOTOKEN_API_KEYYOUR_API_KEY codex如果你的 Codex 版本要求使用OPENAI_API_KEY也可以把env_key改为OPENAI_API_KEY并在 shell 中导出同名变量。关键点是Codex 配置里不要出现ANTHROPIC_BASE_URL、ANTHROPIC_API_KEY或ANTHROPIC_MODEL。这些字段属于 Claude Code 侧放到config.toml里不会生效还可能让排障方向跑偏。最小验证可以这样执行codex exec 列出 Git DAG 共享记忆的三个审计优势每点不超过 20 字如果 Codex 返回 401检查TAOTOKEN_API_KEY是否已经 export 到当前 shell或者env_key指向的变量是否真的存在。如果返回 404检查base_url是否被写成了带/v1或完整 endpoint 的路径。如果返回 400检查wire_api是否与当前 Codex 版本兼容以及模型 ID 是否从 TaoToken 模型页复制正确。在 AutoResearch 工作流里Claude Code 和 Codex 可以分工Claude Code 侧重长文归纳和代码仓库理解Codex 侧重命令行任务和结构化输出。两者都走 TaoToken 的 Base URL但分别用自己的配置文件。Git DAG 不关心请求来自哪个客户端它只关心提交内容是否可检出、可复现。因此建议在 commit message 中带上clientclaude-code或clientcodex便于回溯调用路径。6. 复现实验用 Git commit 记录结果、洞察、验证并落盘 TaoToken 调用日志下面做一个最小复现实验。目标不是训练模型而是验证“Git DAG 作为共享记忆 TaoToken 作为 AutoResearch 模型入口”能否形成可审计闭环。先创建本地研究仓库。mkdir -p auto-research-dag cd auto-research-dag git init git config user.name AutoResearch Worker git config user.email autoexample.local mkdir -p results insights validations logs touch .gitignore printf %s\n .env *.key logs/*.secret .gitignore准备环境变量。这里使用TAOTOKEN_API_KEY避免把 Key 写进 Python 文件。export TAOTOKEN_API_KEYYOUR_API_KEY export TAOTOKEN_MODELYOUR_MODEL_ID export TAOTOKEN_BASE_URLhttps://taotoken.net/api然后写一个本地脚本。它调用模型把结果写入results/把调用日志追加到logs/taotoken_calls.jsonl最后自动 commit。示例使用 OpenAI 兼容 SDK 形式实际模型 ID 以 TaoToken 模型页为准。import json import os import subprocess import time from pathlib import Path from openai import OpenAI BASE_URL os.environ.get(TAOTOKEN_BASE_URL, https://taotoken.net/api) MODEL os.environ.get(TAOTOKEN_MODEL, YOUR_MODEL_ID) client OpenAI(api_keyos.environ[TAOTOKEN_API_KEY], base_urlBASE_URL) def git_commit(path: Path, message: str) - str: subprocess.run([git, add, str(path)], checkTrue) subprocess.run([git, commit, -m, message], checkTrue) result subprocess.run( [git, rev-parse, HEAD], checkTrue, capture_outputTrue, textTrue, ) return result.stdout.strip() task 解释 Git DAG 作为 AutoResearch 共享记忆的适用边界输出三条结论。 start time.time() try: resp client.chat.completions.create( modelMODEL, messages[ {role: system, content: 你是 AutoResearch worker只输出可验证要点。}, {role: user, content: task}, ], temperature0.2, ) content resp.choices[0].message.content or status ok http_code 200 except Exception as exc: content f调用失败{exc} status error http_code getattr(exc, status_code, None) latency round(time.time() - start, 3) result_file Path(results/001_git_dag_shared_memory.md) result_file.write_text(content, encodingutf-8) commit_hash git_commit(result_file, result: git-dag shared memory notes) log_file Path(logs/taotoken_calls.jsonl) with log_file.open(a, encodingutf-8) as f: f.write(json.dumps({ ts: int(time.time()), task: task, model: MODEL, base_url: BASE_URL, latency_s: latency, status: status, http_code: http_code, commit: commit_hash, }, ensure_asciiFalse) \n) git_commit(log_file, flog: taotoken call commit{commit_hash[:7]}) print(result commit:, commit_hash)运行脚本python research_commit.py查看 DAGgit log --graph --oneline --decorate --all git show --stat HEAD git show HEAD~1调用日志应类似{ts: 1760000100, task: 解释 Git DAG 作为 AutoResearch 共享记忆的适用边界输出三条结论。, model: YOUR_MODEL_ID, base_url: https://taotoken.net/api, latency_s: 1.427, status: ok, http_code: 200, commit: f3a9c21}接着模拟“洞察”和“验证” commit。新增一个insights/001_git_dag_tradeoffs.md记录三条洞察Git DAG 适合结构化文本不适合大二进制commit hash 可作为复现指纹分支合并能表达并行研究路径。然后新增validations/001_validation.md记录验证命令和结果。每个文件都单独 commit。git add insights/001_git_dag_tradeoffs.md git commit -m insight: git-dag tradeoffs git add validations/001_validation.md git commit -m validation: reproduce log and commit chain最终用git log --graph --oneline应该看到一条或多条分支历史。如果多个 worker 同时提交可能出现分叉。不要急着 rebase 成一条直线合并 commit 更能保留研究路径。对于 AutoResearchDAG 的价值就在于展示“谁在什么时候基于哪个结果提出了什么洞察”。7. 排障清单401、404、429、模型名不匹配与 Git DAG 分叉第一类问题是 401。表现是 Claude Code 或 Codex 直接报未授权。检查顺序YOUR_API_KEY是否从 TaoToken 控制台复制完整settings.json或 shell 环境是否真的生效Codex 的env_key是否指向已 export 的变量Claude Code 是否重启了会话。不要用生产 Key建议在 TaoToken 官网单独创建 AutoResearch Key。第二类问题是 404。表现是请求路径不存在。最常见原因是 Base URL 写成了完整 endpoint或者多加了/v1。工具配置里 Base URL 应保持为https://taotoken.net/api不要在settings.json或config.toml中拼接/chat/completions、/messages等路径。客户端或 SDK 会按自身协议拼接。第三类问题是 429。表现是短时间大量 AutoResearch worker 并发调用触发限流。处理方式不是无限重试而是指数退避加日志。建议每个 worker 限制并发记录retry_after_s把失败任务写入logs/成功后提交为 commit。限流本身也是研究过程的一部分值得记录。第四类问题是模型名不匹配。表现是 400 或 404提示模型不存在。解决方式是从 TaoToken 模型对话页或控制台复制准确模型 ID不要凭记忆写。Claude Code 的ANTHROPIC_MODEL和 Codex 的model可能使用不同命名必须分别确认。CC Switch 里的模型字段也要与当前客户端协议匹配。第五类问题是 Git DAG 分叉。多个 worker 同时修改同一文件或者同时 commit可能出现冲突。建议按任务建分支例如worker/result-001、worker/insight-001由协调者合并。合并时保留 merge commit不要强行压缩成单线。对于验证类提交建议单独分支并在验证文件中写明被验证的 commit hash。第六类问题是密钥泄露。不要把YOUR_API_KEY写进 Python 文件不要提交.env。.gitignore至少包含.env、*.key、logs/*.secret。如果误提交立刻在 TaoToken 控制台轮换 Key并在 Git 历史中清除。AutoResearch 可以自动提交研究记录但 Key 管理必须由人控制。最后再强调一次边界不要让 MCP 或 Agent 直连 Oracle、生产库。需要数据验证时由读者本地执行 SQL 或命令把脱敏结果导出为 CSV、JSON 或 Markdown再让模型基于文件归纳。Git DAG 记录的是研究证据不是对生产系统的操作权限。8. 文末 CTA从模型对话到 Coding Plan再到创建 Key 与 Claude Code 文档如果你准备把 Agora 式 Git DAG 共享记忆落到自己的 AutoResearch 工作流建议按下面路径完成接入。先到模型对话页确认可用模型和返回格式https://taotoken.net/models/detail/chat?utm_sourcetaotoken_aicg_blog_endutm_contentgit-dag-cta-chat 。然后根据自己的调用频率选择 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentgit-dag-cta-plan 。接着创建 AutoResearch 专用 Keyhttps://taotoken.net/console/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentgit-dag-cta-keys 。最后按 Claude Code 文档完成settings.json配置https://taotoken.net/doc/ClaudeCodeAnthropic?utm_sourcetaotoken_aicg_blog_endutm_contentgit-dag-cta-doc 。完整配置可以压缩成四个动作。第一到 TaoToken 官网https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_contentgit-dag-cta-home获取 KeyBase URL 填https://taotoken.net/api。第二Claude Code 用settings.json配ANTHROPIC_*Codex 用config.toml配独立 providerCC Switch 按供应商、Base URL、Key 三件套切换。第三在本地初始化 Git 仓库用 commit 记录results/、insights/、validations/把调用日志写进logs/taotoken_calls.jsonl。第四用git log --graph --oneline --decorate --all检查 DAG用调用日志检查每次模型请求的状态和延迟。这样做的价值不是把研究流程包装得更复杂而是让每个结论都有出处每次调用都有记录每次验证都能沿着 commit 回放。Git DAG 负责共享记忆TaoToken 负责 AutoResearch 模型入口本地脚本负责记录证据。三者边界清晰后再扩展 worker 数量、分支策略和验证模板就不会把不可复现的聊天上下文当成研究资产。