
1. 为什么 HR 用 OpenClaw 总卡在“能聊但跑不起来”OpenClaw 是一个可本地部署、支持多模型接入的智能体框架HR 团队可以用它把招聘筛选、员工问答、绩效沟通这些高频事务做成可复用的指令流。它适合两类人一类是每天被上百份简历和重复问答淹没的 HR 专员另一类是想把 HR 流程标准化、又不想把敏感数据传到公共平台的人力负责人。但真正上手后你会发现卡点往往不在提示词写得好不好而在配置骨架没搭对——模型 Key 散落在各个文件里、config.toml 和 settings.json 字段对不上、请求发出去报 401 却不知道是鉴权还是模型名写错。我试过把同一套 HR 提示词在三个不同接入方式下跑结果只有统一 Key 的那套能稳定复现。所以这篇不堆场景清单而是先给你一套能直接复制的配置骨架再逐条验证指令能不能跑通。核心思路是用 TaoToken 做统一 Key 接入层OpenClaw 只负责编排和提示词模型调用全部走一个入口。这样 HR 换模型、加场景、做权限隔离时只改一处配置不用满仓库找 Key。下面从环境准备开始每一步都给出可复制的文件内容和验证动作。你跟着做最后应该能拿到一个能跑通“简历筛选 员工问答 绩效沟通”三类指令的 OpenClaw 实例。2. TaoToken 前置统一 Key 与 OpenClaw 的接入关系TaoToken 在这里的角色是模型调用的统一入口。OpenClaw 本身不绑定某一家模型它通过 OpenAI 兼容协议去请求后端而 TaoToken 提供的正是这个兼容层。你只需要在 TaoToken 控制台创建一个 API Key然后让 OpenClaw 的所有模型请求都指向https://taotoken.net/api就不用为每个模型单独配一套鉴权。具体操作分三步。第一步打开 TaoToken 控制台进入 API Keys 页面创建一个新 Key建议按用途命名比如openclaw-hr-prod方便后面做权限区分。第二步记下这个 Key它只会完整显示一次。第三步确认你要用的模型名比如gpt-4o、claude-3-5-sonnet这类TaoToken 的模型列表里能查到对应标识。这里有个容易踩的坑很多人把 Key 直接写进 OpenClaw 的提示词文件或环境变量里结果换环境就失效。正确做法是写进 OpenClaw 的配置文件并且用环境变量引用而不是硬编码。下面第三节的骨架里我会用${TAOTOKEN_API_KEY}这种占位方式你实际部署时通过系统环境变量注入。如果你还没创建 Key可以先到 API Keys 页面操作接入文档里有完整的字段说明遇到 401 或 404 时对照排查会快很多。3. 可复制配置config.toml 与 settings.json 骨架OpenClaw 的配置分两层config.toml管模型接入和全局参数settings.json管智能体行为和工具权限。HR 场景下我建议把模型接入统一放 config.toml把提示词模板和场景开关放 settings.json这样改提示词不会动到鉴权。先看config.toml骨架# config.toml - OpenClaw 模型接入配置 [llm] provider openai-compatible base_url https://taotoken.net/api api_key ${TAOTOKEN_API_KEY} default_model gpt-4o timeout 60 max_retries 2 [llm.models] hr_fast gpt-4o-mini hr_reasoning gpt-4o hr_long_context claude-3-5-sonnet [agent] name hr-assistant workspace ./workspaces/hr log_level info关键点说明base_url必须是https://taotoken.net/api不要带多余路径api_key用环境变量引用不要写死default_model选一个你账号下有权限的模型。[llm.models]里可以给不同 HR 任务分配不同模型比如简历初筛用快模型绩效分析用推理模型。再看settings.json骨架{ agent: { name: hr-assistant, system_prompt: 你是一名资深 HR 助手严格按用户指令输出结构化结果不编造数据。, max_tokens: 4096, temperature: 0.3 }, tools: { file_read: { enabled: true, allowed_paths: [./data/hr] }, file_write: { enabled: true, allowed_paths: [./output/hr] }, web_search: { enabled: false } }, scenes: { resume_screening: { model: hr_reasoning, prompt_file: ./prompts/resume_screening.md }, employee_qa: { model: hr_fast, prompt_file: ./prompts/employee_qa.md }, performance_review: { model: hr_reasoning, prompt_file: ./prompts/performance_review.md } } }这里把三个 HR 场景分别绑定到不同模型和提示词文件。temperature设 0.3 是为了让筛选和绩效结果更稳定减少随机发挥。tools里只开放 HR 数据目录的读写避免智能体误操作其他文件。提示词文件单独放比如./prompts/resume_screening.md内容如下你是一名资深 HR擅长简历筛选和人才评估。 请根据以下岗位 JD分析简历库中每份简历的匹配度 【岗位职责】 1. {{jd_responsibilities}} 【任职要求】 1. {{jd_requirements}} 【评分标准】 - 90-100 分完全匹配所有必须条件满足多项优先条件满足 - 70-89 分基本匹配所有必须条件满足部分优先条件满足 - 50-69 分部分匹配大部分必须条件满足 - 50 分以下不匹配关键必须条件缺失 请为每份简历输出 1. 匹配度评分0-100 2. 核心优势3 条 3. 风险点2-3 条 4. 建议面试/待定/淘汰 5. 面试建议问题3 个针对风险点用{{变量}}占位调用时替换成实际 JD 内容。这样同一套提示词能复用到不同岗位不用每次重写。4. 逐条验证三类 HR 指令的请求与成功结果配置写完后不要急着批量跑先逐条验证。我按“简历筛选 → 员工问答 → 绩效沟通”的顺序来每条都给请求命令和预期输出。4.1 验证简历筛选指令准备一份测试 JD 和两份简历放在./data/hr/下。然后执行export TAOTOKEN_API_KEY你的Key openclaw run --scene resume_screening \ --input ./data/hr/jd.txt \ --input ./data/hr/resume_zhang.txt \ --input ./data/hr/resume_li.txt \ --output ./output/hr/screening_result.md成功时你会看到类似输出[INFO] sceneresume_screening modelgpt-4o [INFO] loaded 2 resumes, 1 jd [INFO] request sent to https://taotoken.net/api [INFO] response received, tokens1842 [INFO] result written to ./output/hr/screening_result.md打开结果文件应该是一张 Markdown 表格包含姓名、匹配度、核心优势、风险点、建议。如果匹配度全是 0 或全是 100说明提示词里的评分标准没被正确读取检查prompt_file路径。4.2 验证员工问答指令员工问答场景适合用快模型响应要短。准备一个employee_qa.md提示词你是公司 HR 助手只回答员工关于考勤、假期、报销、福利的问题。 如果问题超出范围回复“这个问题建议咨询 HR 专员”。 回答要简洁不超过 150 字引用制度时注明制度名称。执行openclaw run --scene employee_qa \ --input 年假怎么计算 \ --output ./output/hr/qa_result.md成功输出应该是一段 100 字左右的回答并注明依据的制度。如果返回的是模型通用回答而不是 HR 口径说明system_prompt没生效检查 settings.json 里agent.system_prompt字段。4.3 验证绩效沟通指令绩效沟通场景需要模型做推理用hr_reasoning。提示词里要求输出“事实 影响 建议”三段式你是一名绩效沟通教练。根据员工绩效数据和上级评语生成一段沟通话术。 要求 1. 先陈述事实数据支撑 2. 再说明影响对团队/业务 3. 最后给改进建议具体可执行 4. 语气客观不贴标签执行openclaw run --scene performance_review \ --input ./data/hr/perf_q3.csv \ --output ./output/hr/perf_talk.md成功时输出应该包含针对每个员工的三段式话术。如果输出是泛泛而谈检查 CSV 字段是否被正确解析以及提示词里有没有要求引用具体数据。三条都跑通后你可以把--scene换成批量模式一次性处理整个目录。但建议先单条验证确认模型、Key、提示词三者都对得上再上批量。5. 本篇常见错排查401、模型名、路径与权限排障时按这个顺序查能覆盖 90% 的问题。401 Unauthorized先确认TAOTOKEN_API_KEY环境变量在当前 shell 里能echo出来。如果为空说明没 export 或写错了变量名。如果 Key 正确还报 401检查base_url是不是写成了https://taotoken.net/api/带了尾斜杠有些客户端会因此拼出双斜杠导致鉴权失败。404 model not found模型名写错或者你的账号没有该模型权限。到 TaoToken 控制台确认模型标识注意大小写和版本号。gpt-4o和gpt-4o-mini是两个不同模型别混用。提示词文件读取失败prompt_file路径是相对 OpenClaw 工作目录的不是相对 settings.json。如果你在项目根目录执行路径就按根目录算。建议用绝对路径或./开头明确相对位置。输出为空或截断max_tokens设太小或者timeout太短。HR 场景里绩效分析输出较长建议max_tokens不低于 4096timeout不低于 60 秒。工具权限报错settings.json 里allowed_paths没包含你实际读写的目录。比如你把简历放在./data/hr/resumes/但allowed_paths只写了./data/hr子目录通常能覆盖但如果用了软链接或绝对路径就要单独加。结果不稳定temperature太高。HR 筛选和绩效场景建议 0.2-0.4员工问答可以到 0.5。如果同一份简历两次跑出差异很大的分数先降 temperature再检查提示词里评分标准是否足够量化。排障时最有用的一招是打开log_level debug能看到完整的请求 URL、模型名和响应头。确认请求确实发到了https://taotoken.net/api而不是被其他配置覆盖。6. 把 Key 和提示词管起来长期编码与 Agent 的接入建议如果你只是偶尔跑几条 HR 指令上面的配置够用了。但如果要把 OpenClaw 做成 HR 团队日常用的 Agent比如接进飞书或内部系统做长期服务那 Key 管理和提示词版本化就要提前规划。Key 方面建议在 TaoToken 控制台按环境创建多个 Key比如openclaw-hr-dev和openclaw-hr-prod开发环境用快模型生产环境用稳定模型。这样即使开发 Key 泄露也不会影响生产。接入文档里有 Key 权限和配额说明配之前扫一眼能省很多事。提示词方面把./prompts/目录纳入版本管理每次改提示词都记一条变更说明。HR 场景的提示词一旦上线输出口径就固定了随意改动会导致历史结果不可比。你可以用scenes里的prompt_file指向不同版本做 A/B 验证。如果团队要长期做编码类或 Agent 类任务比如自动生成 JD、自动写绩效报告可以考虑 Coding Plan 这类按量或包月方案比单次调用更可控。模型对话页面适合快速验证提示词效果不用每次都跑 OpenClaw 命令行。最后提醒一句HR 数据敏感OpenClaw 尽量本地部署TaoToken 的 Key 只用于模型调用不要把员工数据传到任何非授权平台。配置骨架搭好后先跑通一条指令再复制到其他场景比一次性全配完再调试要快得多。