1. 先还原场景ClawWork 那 11 小时到底在跑什么ClawWork 这个案例被反复提起核心不是“AI 帮我写了个脚本”而是一个叫“数虾”的 AI Agent 在约 11 小时里独立完成了一家零售企业季度销售数据的清洗、去重、异常值处理、可视化图表生成和结论先行的分析报告单次交付收入约 $15,000。人类真正介入的时间加起来不到 30 分钟其余时间 Agent 在自主推进并在关键节点通过飞书同步进度。如果你只把它理解成“调个 Claude Sonnet 写报告”复现时一定会卡住。真正让这个案例跑通的是 OpenClaw 的四层记忆架构SOUL 层定义角色人格与职业边界TOOLS 层挂载 Python、文件系统、飞书 API 等执行能力USER 层沉淀客户长期偏好Session 层维持当前任务的短程上下文。四层各司其职Agent 才不会在 11 小时里“人格漂移”或“忘记为什么清洗这份数据”。这篇面向想复现该案例的开发者交付可复制的 settings.json 与 config.toml 骨架、TaoToken 统一 Key/API 通道的接入步骤以及记忆分层读写与收益验证动作。目标很明确从零跑通一条可核对 $15,000 案例路径的最小闭环。适合已经会写 Python、想把手里的 LLM 调用升级成“能交付”的 Agent 的开发者。2. 前置准备用 TaoToken 统一 Key 与 API 通道复现 ClawWork 时第一个容易踩的坑是 Agent 在 11 小时里要反复调用模型如果每个工具、每个脚本各自维护一套 Key 和 endpoint配置会迅速失控。我的做法是把模型调用统一收敛到 TaoToken 的 API 通道一个 Key 覆盖对话、脚本内调用和 Agent 主循环。TaoToken 在这里扮演的是统一接入层官网入口是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 基址是 https://taotoken.net/api 这个地址不加 UTM。你需要在控制台创建 Key然后把它写进环境变量而不是硬编码进 settings.json。操作顺序建议这样先到控制台生成 API Key地址是 https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewrite Key 管理页在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 。生成后先别急着写进项目用模型对话页做一次连通性验证地址是 https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_contentmodelsutm_campaignrewrite 确认 Key 可用再往下走。注意Key 只放环境变量或本地未提交的 .env不要写进会进 Git 的 settings.json。ClawWork 这类长任务一旦 Key 泄露损失的是真金白银的调用额度。如果你后续要把这套 Agent 用于长期编码或常驻任务可以了解 Coding Plan地址是 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 它更适合高频、长时间的 Agent 运行场景。接入细节可对照文档 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite 。3. 可复制配置settings.json 与 config.toml 骨架下面这套骨架是我按 ClawWork 的四层记忆结构整理的你可以直接改成自己的项目名。先看 settings.json它负责 Agent 的运行时行为与记忆层路径映射。{ agent_name: shuxia, model: { provider: taotoken, base_url: https://taotoken.net/api, api_key_env: TAOTOKEN_API_KEY, chat_model: claude-sonnet, max_tokens: 8192, temperature: 0.3 }, memory: { soul_path: ./memory/SOUL.md, tools_path: ./memory/TOOLS.md, user_path: ./memory/USER.md, session_dir: ./memory/sessions, memory_log: ./memory/MEMORY.md }, workspace: { project_root: ~/projects, naming: YYYY-MM-DD-client, auto_mkdir: true }, tools: { python: { enabled: true, timeout_sec: 600 }, filesystem: { enabled: true, allow_write: true }, feishu: { enabled: true, webhook_env: FEISHU_WEBHOOK } }, guardrails: { domain_limits: [legal, medical], on_limit: ask_user, progress_report_every_min: 30 } }几个参数值得单独说。temperature 设 0.3 是因为数据清洗和报告生成需要稳定输出太高会让 Agent 在“结论先行”和“罗列过程”之间反复横跳。guardrails.domain_limits 对应 SOUL 层里的职业边界遇到法律、医疗类解读直接请求澄清而不是硬答。progress_report_every_min 是飞书同步节奏ClawWork 案例里客户信任感很大程度来自这种“透明进度”。再看 config.toml它更偏向工具链和记忆读写的底层参数。[llm] provider taotoken base_url https://taotoken.net/api api_key_env TAOTOKEN_API_KEY retry 3 retry_backoff_sec 5 [memory.soul] file memory/SOUL.md reload_on_task_start true [memory.tools] file memory/TOOLS.md reload_on_task_start true [memory.user] file memory/USER.md append_only true [memory.session] dir memory/sessions max_context_tokens 100000 compress_threshold 0.8 [execution] workdir ~/projects log_dir logs save_intermediate true [report] format markdown convert_to_pdf true conclusion_first truememory.session.compress_threshold 0.8是关键。Session 层在长任务里会不断膨胀到 80% 上下文时触发压缩把中间变量和已完成步骤摘要化避免像普通对话那样把最初指令挤掉。memory.user.append_only true保证 USER 层只追加不覆盖客户偏好是长期资产。4. 四层记忆的读写动作与验证请求配置写完真正决定成败的是四层记忆怎么读、怎么写。下面按 SOUL、TOOLS、USER、Session 逐层给可执行动作。SOUL 层在每次任务启动时加载一次定义“数虾”的身份、风格和边界。一个最小 SOUL.md 长这样# SOUL ## 身份 专业数据分析师代号“数虾”。 ## 风格 结论先行主动同步进度不堆砌过程。 ## 工作流 收到数据文件后先确认分析目标再开始处理。 ## 边界 不提供法律、医疗专业解读遇到此类需求请求用户澄清。TOOLS 层声明能力边界让 Agent 知道自己能调什么。USER 层在任务结束时追加客户偏好比如“偏好柱状图展示趋势”。Session 层由运行时自动维护你只需要在关键节点写入中间结果。验证请求这一步别跳过。先用模型对话页发一条最小请求确认通道通curl https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ -H Content-Type: application/json \ -d { model: claude-sonnet, messages: [{role: user, content: 回复 OK 两个字母}], max_tokens: 16 }返回里能看到正常 completion说明 Key 和 base_url 都对。接着跑一次记忆读写验证确认 Session 目录能落盘import os, json, datetime session_id datetime.datetime.now().strftime(%Y%m%d-%H%M%S) session_dir os.path.expanduser(~/projects/memory/sessions) os.makedirs(session_dir, exist_okTrue) state { session_id: session_id, task: Q3 销售数据清洗, stage: received_file, intermediate: {} } with open(os.path.join(session_dir, f{session_id}.json), w) as f: json.dump(state, f, ensure_asciiFalse, indent2) print(session written:, session_id)跑通后你会看到 sessions 目录下多了一个 JSON这就是 Session 层的物理落点。ClawWork 案例里 Agent 能在 11 小时后还记得“客户要求结论先行”靠的就是这类状态文件加上 SOUL 层的重载。5. 本篇常见错排查复现过程中最容易卡住的几个点我按出现频率排一下。第一个是 Key 没生效报 401。多数情况是环境变量名和配置里的api_key_env不一致或者 shell 没重新加载。用echo $TAOTOKEN_API_KEY确认非空再检查 settings.json 里写的是不是同一个名字。第二个是 Session 上下文被挤爆Agent 开始“失忆”。表现是任务跑到后半段它忘了最初的分析目标。检查compress_threshold是否设得过高或者中间结果没有及时摘要写入。把已完成步骤压缩成一句话存进 Session比原样堆在上下文里更稳。第三个是工具调用超时。Pandas 清洗 3 万行数据如果没设 timeoutAgent 会一直等。settings.json 里tools.python.timeout_sec设 600 秒是保守值数据量更大时按比例调。第四个是飞书同步没触发。先确认 webhook 环境变量存在再看progress_report_every_min是否被任务时长覆盖。短任务可能还没到上报间隔就结束了这属于正常。第五个是报告格式跑偏没有“结论先行”。这通常是 SOUL 层没在任务启动时重载或者 temperature 偏高。把reload_on_task_start设为 truetemperature 压到 0.3 以下。提示排障时优先看 logs 目录下的执行日志比在对话里追问 Agent 更快定位是哪一层出的问题。6. 收益验证与下一步跑通最小闭环后怎么核对 $15,000 这条路径我的做法是记录三个数任务总耗时、Token 消耗折算成本、交付物数量。ClawWork 案例里 11 小时、API 成本低于 $100、交付 PDF 报告加清洗后数据加归档包这三项对齐后定价区间落在 $8,000–$20,000 的“复杂数据分析”档位就有依据。你可以先拿一份自己的历史数据跑一遍把 Session 日志和 MEMORY.md 里的记录导出来对比人工完成同样工作的时间。差距越大这套四层记忆架构的价值越明显。后续要扩展成法律文档初审或代码审查 Agent改的是 SOUL.md 和 TOOLS.md记忆层结构不用动。需要长期跑这类 Agent 的话Coding Plan 地址是 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite 接入文档在 https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite Key 管理在 https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite 。先把 SOUL.md 写出来再让 Agent 跑第一个真实任务比继续读案例更有用。