☰
从0到1复刻“龙虾员工”:用OpenClaw+百度DuClaw在1天内搭建可报销的AI助理(TaoToken统一Key接入版)
2026/9/29 5:52:00 网站建设 项目流程

1. 报销助理这件事,为什么值得用 OpenClaw + 百度DuClaw 重做一遍

如果你每个月都要处理十几张发票、手动往 Excel 里敲金额和日期、再截图发到企业微信催审批,那你大概率已经想过“能不能让 AI 替我干”。OpenClaw 就是干这个的——它是一个开源的任务型 AI 助理框架,能理解自然语言指令,自动规划步骤、调用工具、操作本地文件。百度DuClaw 则把它做成了开箱即用的托管版本,省掉了自己租服务器、配镜像、接模型的麻烦。两者组合起来,适合谁?适合没有专职运维、但想让报销流程自动跑起来的中小团队财务、行政,以及想给自己配个“数字实习生”的开发者。

我试过用纯手动方式跑一遍报销流程:收发票、核对金额、填表、发提醒,二十张发票大概要花四十分钟。用 OpenClaw + 百度DuClaw 搭好之后,同样的量压缩到五分钟以内,而且出错率明显下降。这篇就按“一天内跑通最小闭环”的节奏,把配置骨架、TaoToken 统一 Key 接入、验证清单全部拆开讲。

2. 前置准备:TaoToken 统一 Key 与百度DuClaw 环境

2.1 为什么需要 TaoToken 统一 Key

OpenClaw 本身不绑定模型,它通过 API 调用大模型来完成推理和工具编排。百度DuClaw 虽然内置了模型切换,但如果你想让 OpenClaw 在本地或自有服务器上跑,就需要一个稳定的 API 入口。TaoToken 提供统一的 Key 管理,一个 Key 可以调用多种主流模型,省去逐个平台申请、逐个配置的麻烦。对于报销助理这种需要“理解中文发票 + 结构化输出”的场景,统一 Key 能让你在 DeepSeek、Kimi 等模型之间快速切换测试,找到识别准确率最高的那个。

2.2 获取 Key 与确认接入点

打开 TaoToken 官网(https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content=),注册后进入控制台,在 API Keys 页面创建一个新 Key。建议按用途命名,比如openclaw-reimburse,方便后续排查。创建后复制 Key,它只会完整显示一次。

接入地址用https://taotoken.net/api,这个地址不加 UTM 参数,直接作为 OpenClaw 的 base_url 使用。如果你需要查看模型列表或调试对话,可以走模型对话入口;如果是长期编码或 Agent 场景,Coding Plan 更划算。接入文档里有完整的参数说明,遇到报错先查文档。

2.3 百度DuClaw 侧的准备

百度DuClaw 网页端打开就能用,首月有优惠价。注册流程是手机号验证、实名认证、支付订阅三步。进入控制台后,左边是任务列表,中间是输入框,右边是模型选择和技能开关。关键动作:在 Skills 列表里确认“百度 OCR”和“百度搜索”已启用,前者用于发票识别,后者用于辅助校验销售方名称。模型先选 DeepSeek 或 Kimi-K2.5,中文表格理解更稳。

3. 可复制配置:config.toml 与 settings.json 骨架

3.1 OpenClaw 的 config.toml

OpenClaw 的配置文件通常放在~/.openclaw/config.toml(Linux/Mac)或%USERPROFILE%\.openclaw\config.toml(Windows)。下面这份骨架可以直接复制,把your_taotoken_key替换成你刚创建的 Key。

[gateway] mode = "local" port = 18789 [model] provider = "taotoken" base_url = "https://taotoken.net/api" api_key = "your_taotoken_key" model_name = "deepseek-chat" max_tokens = 4096 temperature = 0.2 [skills] enabled = ["baidu_ocr", "baidu_search", "file_ops", "http_client"] ocr_engine = "baidu_cloud" local_fallback = true [security] sandbox = true allow_local_file_write = true allowed_paths = ["D:\\财务", "%USERPROFILE%\\Documents\\报销"]

几个参数说明:temperature设成 0.2 是为了让发票字段提取更稳定,减少“脑补”数字的概率。sandbox = true让代码片段在隔离环境执行,不会污染本地 Python。allowed_paths限制文件操作范围,避免 AI 误改其他目录。

3.2 百度DuClaw 的 settings.json

如果你在百度DuClaw 网页端使用,部分配置通过settings.json导入。这个文件放在项目根目录,DuClaw 启动时会读取。

{ "assistant_name": "报销助理", "model": { "default": "deepseek-chat", "fallback": "kimi-k2.5", "api_base": "https://taotoken.net/api", "api_key_env": "TAOTOKEN_API_KEY" }, "skills": { "ocr": { "provider": "baidu", "confidence_threshold": 0.85, "retry_on_low_confidence": true }, "excel": { "template_path": "D:\\财务\\报销表_2026.xlsx", "sheet_name": "未处理", "backup_before_write": true }, "notify": { "channel": "wecom_webhook", "webhook_url_env": "WECOM_WEBHOOK_URL" } }, "guardrails": { "max_tokens_per_task": 8000, "require_human_confirm_on_amount_over": 5000 } }

注意api_key_env和webhook_url_env用的是环境变量名,不要把真实 Key 写进 JSON 文件。在系统环境变量里设置TAOTOKEN_API_KEY和WECOM_WEBHOOK_URL,这样配置文件可以安全地提交到团队仓库。

3.3 环境变量设置

Linux/Mac 在~/.bashrc或~/.zshrc里加:

export TAOTOKEN_API_KEY="你的Key" export WECOM_WEBHOOK_URL="你的企业微信机器人Webhook"

Windows 用 PowerShell:

[Environment]::SetEnvironmentVariable("TAOTOKEN_API_KEY", "你的Key", "User") [Environment]::SetEnvironmentVariable("WECOM_WEBHOOK_URL", "你的Webhook", "User")

设置完重启终端,用echo $TAOTOKEN_API_KEY确认能读到。

4. 验证请求:从发票识别到企业微信提醒的完整链路

4.1 启动 OpenClaw 并测试模型连通

配置写好后,在终端运行:

openclaw gateway start --config ~/.openclaw/config.toml

看到Gateway listening on 18789说明启动成功。然后发一个最小请求测试 TaoToken 接入是否正常:

curl -X POST http://localhost:18789/v1/chat/completions \ -H "Content-Type: application/json" \ -d '{ "model": "deepseek-chat", "messages": [{"role": "user", "content": "回复OK"}], "max_tokens": 10 }'

如果返回包含OK的 JSON,说明 Key 和 base_url 都通了。如果报 401,检查 Key 是否复制完整;报 404,检查 base_url 是否写成了https://taotoken.net/api而不是其他路径。

4.2 发票识别任务

在百度DuClaw 网页端创建新任务,输入以下提示词:

你是一名财务助理。请按以下步骤处理报销: 1. 读取附件中的发票图片(支持 jpg/png/pdf) 2. 使用 OCR 技能提取:发票号码、发票代码、开票日期、金额(含税)、销售方名称 3. 整理成 JSON:{"invoice_no": "...", "date": "...", "amount": "...", "seller": "..."} 4. 检查金额是否为数字,如果不是,尝试转换中文大写金额 5. 返回结构化数据,并附上:"已核验,共X张发票,总金额XXXX元"

上传一张测试发票,观察返回结果。如果金额字段出现null,说明 OCR 置信度低于阈值,检查confidence_threshold是否设得太高,或者发票图片是否模糊。

4.3 Excel 自动填充

发票数据提取成功后,继续在同一个任务里追加指令:

打开 D:\财务\报销表_2026.xlsx,定位到"未处理"工作表。 将上一步提取的发票数据按以下规则填入: - 发票号码 → A列 - 开票日期 → B列(格式化为 YYYY-MM-DD) - 金额 → C列(保留两位小数) - 销售方 → D列 - E列填入当前日期作为"录入日期" 保存文件,并在桌面生成备份副本,命名为"报销表_备份_当前时间.xlsx"

DuClaw 会调用本地 Excel 接口或 Python 的 openpyxl 执行。如果你在网页端使用,直接上传 Excel 文件,处理完下载回来。验证动作:打开生成的 Excel,检查新增行是否高亮,金额列是否都是数字格式。

4.4 企业微信提醒

最后一步,让 AI 把汇总发到企业微信群。先在群聊里添加一个群机器人,拿到 Webhook 地址,设置到环境变量WECOM_WEBHOOK_URL。然后给 DuClaw 指令:

调用 HTTP POST 请求,地址为环境变量 WECOM_WEBHOOK_URL 的值,请求体: { "msgtype": "text", "text": { "content": "【报销提醒】{{上一步生成的summary内容}},详细表格已更新至共享盘,请审批。" } }

发送成功后,企业微信群里会收到消息。如果返回 403,检查 Webhook 是否过期;返回 404,检查 URL 是否完整。

5. 本篇常见错排查

5.1 TaoToken Key 报 401 或 403

最常见的原因是 Key 复制时带了空格,或者环境变量没生效。先在终端echo $TAOTOKEN_API_KEY确认值正确。如果用的是 config.toml 直接写 Key,检查引号是否匹配。另外,TaoToken 的 Key 有权限范围,确认创建时勾选了对应的模型权限。

5.2 百度DuClaw OCR 识别金额不准

手写发票或拍照角度倾斜时,OCR 容易把1000识别成1008。解决办法有两个:一是在settings.json里把confidence_threshold调到 0.9,低置信度时触发人工确认;二是在提示词里加一句“如果金额字段置信度低于 0.9,请标注 [需人工复核] 并暂停后续步骤”。

5.3 Excel 文件被占用导致写入失败

如果报销表正被 Excel 打开,OpenClaw 写入会报PermissionError。在配置里开启backup_before_write,并让 AI 先检查文件是否被锁定。更稳妥的做法是让 AI 写入一个临时文件,确认成功后再替换原文件。

5.4 企业微信 Webhook 发送失败

检查 Webhook URL 是否包含key=参数,以及机器人是否被移出群聊。另外,企业微信对消息频率有限制,短时间内发送多条可能被限流。在guardrails里加一个notify_cooldown_seconds: 30,避免连续发送。

5.5 模型切换后任务中断

从 DeepSeek 切到 Kimi 时,如果fallback模型没有配置相同的api_base,请求会失败。确保settings.json里fallback也走 TaoToken 的https://taotoken.net/api,这样切换模型不需要改 Key。

6. 跑通之后:从报销助理到更多自动化场景

报销流程跑通后,这套 OpenClaw + 百度DuClaw + TaoToken 的组合可以复用到其他场景。比如每天早上 9 点自动抓取昨日销售数据、生成 Excel、发到企业微信;或者监控竞品官网价格变动,降价超过 5% 时自动截图发邮件。核心逻辑是一样的:用 TaoToken 统一 Key 解决模型调用,用 OpenClaw 做任务编排,用百度DuClaw 的技能包处理 OCR、搜索、HTTP 请求这些具体动作。

如果你在接入过程中遇到模型调用报错,优先去 API Keys 页面确认 Key 状态,再对照接入文档检查 base_url 和参数格式。需要验证模型输出质量时,模型对话入口可以快速测试不同模型对同一张发票的识别效果。长期跑编码或 Agent 任务的话,Coding Plan 的额度更划算。配置文件和提示词都可以直接复制上面的骨架,改改路径和字段就能用。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询