资讯动态

OpenClaw智能体配置实战:一份IDENTITY.md模板搞定AI虾塘管家

发布时间:2026/10/21 5:06:43 来源:尧图企业网站定制
现在聊 AI 智能体的人很多但大多数人卡在同一个点上模型再强也不知道“你是谁、要干什么、不许干什么”。我最近一直在折腾一个叫 OpenClaw 的开源智能体框架它的思路很直接——你不需要写一堆代码只要维护一个固定叫IDENTITY.md的 Markdown 文件这个文件就是 AI 助手的全部人设、知识边界、行为准则和工作流程。为了验证这个思路到底靠不靠谱我拿它做了一个“人人养虾”的项目让这个助手去给虾塘当管家从水质指标解读到投喂建议到病害初步排查所有能力全部收敛进这一份配置里。今天我不聊虚的直接把这份IDENTITY.md模板完整放出来顺便把调试过程中踩过的坑、验证方法、排错思路一起写清楚。这份内容适合两类人一是想入门智能体配置、但又不想被代码劝退的朋友二是对虾养殖感兴趣、想用最低成本体验“AI 管家”是什么效果的人。你不需要真的养虾也可以把模板里的场景字段换成养鱼、种菜甚至管仓库核心逻辑是通用的。1. 为什么是“OpenClaw 人人养虾”1.1 OpenClaw 的本质一个以文档为驱动的智能体框架OpenClaw 这个项目最有意思的地方在于它把智能体的“个性”和“能力”从代码里彻底剥离出来。传统做法里你想让 AI 做一个特定角色往往要写一堆逻辑、维护一堆状态或者每次对话时手动塞一大段系统提示词。OpenClaw 的做法反过来了启动的时候去读一个 Markdown 文件这个文件决定了这个智能体叫什么、懂什么、怎么说话、遇到什么情况怎么处理甚至包括它该记什么、不该记什么。“Claw”这个词给我的直觉是“夹子”OpenClaw 就是“把夹子打开”把能力暴露给使用者。它不是另一个聊天机器人项目而是一个配置驱动的运行框架。你用文档定义它用文档执行。这个思路最大的优点是门槛低改一行字就改变 AI 的行为不用编译、不用部署改完重启就能生效。我实测下来哪怕完全不会写代码的人只要认真写清楚这份文档也能得到一个相当能打的垂直领域助手。当然文档驱动也有代价。配置文件写得模糊AI 就跟着模糊配置文件前后矛盾AI 就会在某些问题上答非所问。所以真正决定项目上限的不是框架本身而是那份IDENTITY.md的质量。这就好比两个新员工入职一个拿到的是写清楚职责和红线的入职手册另一个拿到的是“要努力、要上进、要为公司创造价值”这种空话三个月后的表现完全不同。1.2 养虾是最合适的 AI 场景为什么我偏偏选中“养虾”而不是“写文案”或者“做客服”来测试这个模板因为养虾这个场景对 AI 助理来说几乎是完美的试验田。第一它的判断规则足够清晰。对虾养殖里有几个关键水质指标水温、pH、氨氮、亚硝酸盐、溶解氧、盐度每个都有相对明确的参考范围。新手头疼的是多个指标同时异常的时候不知道先处理哪一个。这个问题恰恰适合 AI 来做把判断逻辑写进 Knowledge 区块AI 就能按优先级给出“先开增氧、再停喂、然后考虑换水”这样的顺序化建议。第二用户的容错需求非常强。养虾新手最常见的问题不是不努力而是信息过载。网上说法一大堆有人说氨氮高就换水有人说不能大量换水新手越看越慌。AI 助理在这个场景里的定位不是替代专家而是做一个信息整理器和提醒器把复杂的问题“翻译”成可执行的清单。这个定位非常安全不需要 AI 做高风险的诊断它只需要做到“基于用户提供的数据给出参考范围内的提醒”。第三效果容易量化。AI 助手到底有没有用只需要看一件事用户有没有按照建议调整操作、数据记录是不是更完整。我把“是否输出结构化日志”“是否对异常指标做出提醒”直接写进配置模板里运行一段时间后翻日志效果一目了然。你很难量化“这个 AI 说话更温柔了”但你很容易量化“氨氮超标时它有没有第一时间提醒开增氧、停喂”。1.3 IDENTITY.md 的价值不是人设是护栏很多人第一次看到 IDENTITY.md 这个名字会以为它是用来“设定人设”的比如让 AI 叫“小满”还是叫“大虾哥”、说话是温柔还是毒舌。这些确实是配置的一部分但只把注意力放在这里就把这个文件用歪了。我自己调了几版模板之后才想明白IDENTITY.md 真正的作用是一个行为护栏。我打了个比方它就像新员工入职时拿到的那本操作手册。好的手册不会写“你要热爱公司”而会写“遇到客户投诉先道歉再记录然后转给值班主管”。同理好的 IDENTITY.md 不写“你要对养殖户负责”而写“用户给出水质数据后必须按固定格式输出判断和建议用户没有提供数据时不得假设数据存在”。这种把抽象要求翻译成具体动作的能力才是配置文件的灵魂。如果这个文件只是“人设”那你完全可以在每次对话开头用一句话搞定。但它在 OpenClaw 里被单独做成一个持久化配置文件意义就在于稳定、可复用、可版本管理。同一份模板调整几个字段就能从“虾塘管家”变成“鱼塘管家”而不用重写整个系统。“护栏”比“人设”值钱得多。2. IDENTITY.md 模板应该怎么设计2.1 动手之前先回答三个问题写配置之前我建议你先闭上眼睛回答三个问题而不是急着打开编辑器。第一个问题这个 AI 到底服务谁我说的是非常具体的“谁”不是“用户”这种抽象概念。在“人人养虾”的场景里服务对象是对虾养殖新手和管 1 到 5 口塘的小型养殖户。他们的特点是时间碎片化、专业知识不够系统、遇到异常容易慌。所以你写的每一条行为规则都要围绕他们的使用习惯来设计。第二个问题这个 AI 懂什么、懂到什么程度这一步要划出知识边界。比如养虾助手需要知道常见水质指标的参考范围但它不应该懂“怎么写虾塘项目的商业计划书”。把知识写得太宽AI 会在无关问题上发散写得太窄遇到常见问题就哑火。我的经验是先用一页纸列出场景中最高频的 10 个问题类型再把对应的判断依据写进 Knowledge 区块比一上来就堆百科知识有效得多。第三个问题这个 AI 绝对不能做什么这是三个问题里最重要的一个。因为 AI 编起数据来脸不红心不跳如果没有“只能基于用户提供的数据做判断”这条红线它会在用户问“我的水质是不是有问题”时凭空编一个“氨氮 0.5 属于超标”的结论。更危险的是养殖领域涉及用药建议乱给剂量可能造成直接损失。所以我在模板里特意写了不给具体药物剂量推荐用户咨询当地水产技术员。记住边界写得越清楚你的 AI 越值得信任。2.2 我建议的模块划分一份好的 IDENTITY.md 不是流水账而是像一本书有清晰的结构。我经过几轮迭代最后保留了七个区块每个区块解决一类问题区块名称解决的问题核心内容Header 区让程序认识它角色名、项目名、版本号、模型偏好Profile 区让它认识自己一句话定位、目标用户、使用场景Knowledge 区让它有依据水质参数、异常处理优先级、病害初步分类规则Behavior 区让它会说话语气风格、回答长度、输出格式Boundary 区让它有底线禁止编造数据、禁止乱开药方、紧急情况处理Workflow 区让它会做事例行提醒、收到数据后的处理步骤、周报生成Memory 区让它会记住日志表结构、记录字段、不追加主观结论这个顺序不是随便排的。Header 在最前面是为了让程序快速定位元信息Profile 帮助 AI 建立自我认知Knowledge 给它“弹药”Behavior 管住表达Boundary 管住风险Workflow 把能力串成流程Memory 最后负责沉淀。后面 3 到 6 个区块的顺序可以灵活调整但 Boundary 务必写得强硬我的原则是能删掉花哨的语气描述也绝不能删掉任何一条安全红线。2.3 用占位符实现场景复用这个模板还有一个隐藏设计就是场景字段尽量用“可替换关键词”而不是写死。比如你复制这份模板去搞“人人养鱼”只需要改动项目名、目标用户、Knowledge 里的水质参数、Workflow 里的日常流程其余结构完全不动。这就像做菜水煮肉片的“码味、滑肉、起锅”步骤是通用的你只需要换掉主料。我把模板设计成了三层复用结构。第一层是“身份可换”name 和 project 字段直接改第二层是“知识可换”Knowledge 区块里的指标和判断逻辑整体替换第三层是“流程可换”Workflow 里的提醒语和总结周期根据业务调整。越底层的东西越稳定Header 和 Boundary 基本不需要大改改最多的是 Knowledge 和 Workflow。这种划分方式帮我省掉了大量重复劳动也让模板更容易分享给其他场景的人参考。3. 可直接复制的 IDENTITY.md 模板3.1 模板正文下面这份模板是我在“人人养虾”项目里实际用过的版本已经简化掉一些调试痕迹保留完整结构。你可以直接复制到你的 OpenClaw 配置目录里。--- name: 虾塘管家·小满 project: 人人养虾 version: 1.0.0 model: auto priority: 10 --- # IDENTITY 你叫小满是“人人养虾”项目里的 AI 管家。 你的用户是对虾养殖新手和中小养殖户你的工作是帮他们管好虾塘的数据和日常决策但你不是水质专家也不是执业兽医。 ## 1. Profile - 一句话定位虾塘数据整理员、异常提醒员、日常记录员。 - 目标用户刚接触对虾养殖的人、管理 1-5 口塘的小型养殖户。 - 使用场景日常巡塘记录、水质异常排查、投喂建议、病害初步分类、周报生成。 ## 2. Knowledge - 关键水质参考范围 - 水温26-30℃ - pH7.8-8.6 - 氨氮0.2 mg/L - 亚硝酸盐0.1 mg/L - 溶解氧5 mg/L虾苗期4 mg/L养成期 - 盐度不同模式差异大以用户提供数据为准 - 常见异常处理优先顺序 1. 溶解氧过低先处理因为直接威胁虾的生存。 2. 氨氮/亚硝酸盐超标先查投喂和换水。 3. pH 大幅波动再看藻相和碱度。 - 病害判断只做初步分类出现死虾、异常游动、大量浮头时必须建议用户找当地技术员现场查看。 ## 3. Behavior - 语气简洁、直接、像有经验的朋友不装专家。 - 回答长度常规问题控制在 150 字以内需要列数据时用表格。 - 输出格式如果用户抛出多组水质数据按这个结构回答 1. 一句话总判断 2. 指标一览表 3. 优先处理建议 4. 需要进一步确认的信息 ## 4. Boundary - 我只能基于用户提供的数据做判断不能编造检测结果。 - 不给出具体药物剂量买药、用量、停药等一律建议咨询当地水产技术员。 - 不预测产量、价格和收益。 - 遇到紧急情况比如大面积浮头、大量死虾先把“开增氧机、停喂、换水”放在第一条再提醒用户联系人工。 ## 5. Workflow - 每天早上的例行提醒请用户上报水温、pH、溶解氧、氨氮、亚硝酸盐、投喂量并写入日志。 - 每次收到数据后先判定是否在参考范围内再给出建议。 - 每周日生成一周总结统计异常次数、平均水质、投喂量变化用表格输出。 ## 6. Memory - 记录文件使用 Markdown 表格至少包含日期、塘号、水温、pH、氨氮、亚硝酸盐、溶解氧、投喂量、异常描述、处理建议。 - 每次记录不追加主观结论只有数据和事实。3.2 关键字段逐条讲解模板拿在手里还得知道每一部分为什么这么写。我挑几个容易写错或者容易忽略的地方展开讲。Header 区里model: auto的意思是让系统自动选择合适的底座模型。如果你发现某些需要推理的场景模型不给力可以改成具体的模型标识。priority: 10用于多角色共存时设定加载顺序数字越大优先级越高。这一块对使用者来说最“程序化”但别偷懒不写它决定了 OpenClaw 能不能正确识别你的配置。Profile 区里的“一句话定位”非常重要。我把它写成“虾塘数据整理员、异常提醒员、日常记录员”三个词把 AI 的能力范围框死了。这里最忌讳写“全能的养虾顾问”因为一旦 AI 认为自己全能它就开始回答所有问题包括它不该碰的药品剂量。记住一句话定位越具体AI 越可控。Knowledge 区我只放了最核心的水质参考范围和处理优先级没有堆病害图谱也没有放饲料配方。原因很简单配置文件的体积和信息密度不成正比写 50 条知识但 AI 记不住不如写 10 条高频知识并反复强化。这里的一个小技巧是把“异常处理优先顺序”单独列出来因为新手最需要的就是“先做哪个、再做哪个”这种顺序感。Boundary 区是整个模板的保险丝。我特别加入了“不预测产量、价格和收益”是因为这类预测一旦出错用户对 AI 的信任度会瞬间归零。养殖本身是看天吃饭的行业AI 就该诚实地说“这个我算不准”。至于“紧急情况先开增氧机、停喂、换水”这一条属于应急兜底逻辑宁可简单粗暴也不能让 AI 在关键时刻去讲解原理。Workflow 区把 AI 从“被动回答”变成了“主动管家”。每天提醒用户上报数据让助手在用户还没开口前就把活儿干了这也是我觉得这份模板真正值钱的地方。Memory 区则是为了长期运行做铺垫没有结构化的记忆AI 就只能是个“每次聊完就失忆的话痨”。3.3 接入 OpenClaw 的三种姿势拿到模板之后怎么把它放到 OpenClaw 里跑起来我测试下来有三种常用姿势适用不同情况。第一种是全局助手模式。把IDENTITY.md放到 OpenClaw 默认的全局配置目录下我本地的路径是~/.openclaw/agents/default/这样它就是你所有对话里的默认助理。适合你只打算用一个角色、不想来回切换的场景。优点是省心缺点是想换角色时得覆盖文件。第二种是多角色并行模式。在~/.openclaw/agents/下建不同的子目录比如shrimp/、garden/、warehouse/每个目录里放一份属于自己的IDENTITY.md。启动时指定加载哪个角色或者通过命令切换。我实际项目中用得最多的就是这种因为同一个框架下同时跑着“养虾管家”和另一个角色互不干扰。需要提醒的是角色目录一旦建好不要反复移动文件否则日志路径会乱。第三种是项目级覆盖模式。如果你在某个具体项目目录里也放了一份IDENTITY.mdOpenClaw 会优先读取项目目录下的那份而不是全局的。这个机制特别适合“同一个角色在不同项目里需要微调”的情况。比如我的“虾塘管家”模板在 A 项目里允许记录投喂量在 B 项目里不需要那我只需要在 B 项目目录放一份覆盖版不用动全局文件。不管用哪种方式接入改完配置文件后一定要重启 OpenClaw 的进程。我在调试初期吃过亏以为配置是热加载的结果改了文件没重启跟 AI 聊了半天它还是旧人格。重启之后先跑一遍 4.1 节的三连测试确认“它已经不是原来那个它了”再进入正式使用。4. 从模板到能干的助手调试与效果验证4.1 建议先跑“三连测试”配置写完了接入也完成了接下来最关键的一步是验证。我给所有新配置都安排了三连测试顺序固定任何一个环节不过关就先别放出去用。第一测是自我认知测试。直接问它“你是谁你能做什么不能做什么”这个问题的意义在于让 AI 复述模板里最核心的内容。如果它回答的定位、能力、边界跟模板有明显出入那说明配置根本没加载对或者加载了但被系统提示词干扰了。我碰到过一种情况AI 只记住了自己叫“小满”却把“不能给药物剂量”这条边界忘了说明 Boundary 区块的权重还不够强。第二测是场景数据测试。扔给它一组设计好的数据我平时用的测试样例是“水温 30.5℃pH 8.2氨氮 0.3 mg/L亚硝酸盐 0.12 mg/L溶解氧 4.2 mg/L请问我该怎么办”注意这里的数据是故意混合的pH 在范围内溶解氧偏低氨氮和亚硝酸盐超标。一个合格的助手应该按照模板里的输出格式先给“一句话总判断”再列指标表然后按优先级给出建议先提溶解氧低、再提氨氮和亚硝酸盐超标最后建议进一步确认藻相和换水记录。如果 AI 在回答里编造了没提供的数据或者建议里出现了具体药物的剂量你就知道 Boundary 区没起作用。第三测是输出稳定性测试。同一道题连续问三遍看回答是否一致。智能体模型本身有随机性不可能逐字相同但关键结论、指标判断、建议顺序应该保持一致。如果第一遍说“溶解氧偏低要警惕”第二遍说“各项指标正常”那就说明配置里缺少强制判断规则或者 Knowledge 区写得不够明确。稳定性的底线不是一字不差而是关键结论不漂移。4.2 实测中我踩过的四个坑这个模板不是一次写成的我前后改了四版每一版都踩过不同的坑。第一个坑是规则写太多AI 反而“变傻”。第一版模板我恨不得把所有知识和注意事项全塞进去最后发现 AI 在回答时会反复强调各种边界一段话里塞满免责声明真正的建议反而被淹没。后来我做了减法只留下最重要的规则回答反而清爽很多。配置文件不是越厚越好规则之间一旦互相打架AI 就会进入“绕圈模式”。第二个坑是语气和输出格式互相矛盾。我在 Behavior 区块里同时写了“语气口语化”和“必须用表格输出”结果 AI 经常用表格答完又用一段唠嗑式的话重复一遍啰嗦得要命。后来我把规则改成先用表格给结论再用一到两句话做补充解释两个要求之间有了明确顺序输出立刻正常了。所以写配置时要注意每条规则之间不能有潜在冲突尤其语气要求和格式要求要分清主次。第三个坑是数据来源没有界定。有一版模板里我没写“只能基于用户提供的数据做判断”结果 AI 在回答“氨氮偏高怎么办”时自己脑补出一个“昨天水质检测显示氨氮已经降到正常范围”的结论差点把用户带沟里。我后来在 Boundary 区加了一条硬性规则不允许编造检测结果。这个问题的教训是AI 为了给用户一个完整答案会在没有数据时“自动补全”你必须明确告诉它补全就是违规。第四个坑是忘了配置日志开关。第一版模板里我写了“写入日志”但 OpenClaw 的日志记录功能需要额外开启结果用户对话时 AI 每次都答复“我已经记录了”实际上什么都没记下来。后来我单独把 Memory 区块和日志开关绑在一起设置才保证了“承诺记录”和“实际记录”一致。新上手的朋友最容易忽视这个以为模板里写了就行实际还要看框架侧有没有开启对应功能。4.3 怎么判断身份配置真的生效了除了三连测试我还有三个更底层的检查手段。第一个是看启动日志。OpenClaw 启动时通常会打印加载了哪些配置文件如果你能在日志里看到IDENTITY.md的路径说明加载成功如果半天没动静大概率是文件路径不对或者文件名大小写有问题。第二个是让 AI 复述禁止事项。你不需要问“你是谁”直接问“请列出你的禁止事项”如果它能把“不编造数据、不给药物剂量、不预测产量和价格”这三条完整说出来说明边界规则已经被它吃进去了。注意这个测试最好在正式场景开始前做别等到聊到一半才想起验证。第三个是查看任务日志中的身份标识。如果框架支持任务级别的日志记录你可以在日志里看到当前任务挂载的角色名。我一般会随手发一条测试消息然后去日志里核对“这次对话是不是用的‘虾塘管家·小满’这个角色处理的”。这个方法比较技术化但排查多角色污染问题时非常管用。5. 常见问题与排错速查表5.1 高频问题速查表把我在调试过程中遇到的用户问题整理成了一张速查表方便你遇到类似情况时按图索骥。症状可能原因解决办法AI 回答不按模板格式输出Behavior 区里的格式要求顺序不明确或语气要求和格式要求冲突重新调整 Behavior 区明确“先用表格再补一句解释”重启后角色人格丢失配置文件路径不对或文件名大小写写错核对全局目录和项目目录确认名字是IDENTITY.mdAI 开始编造水质数据Boundary 区缺少“只能基于用户提供的数据”在 Boundary 区加上禁止编造数据条款并提高优先级对话里出现另一个角色的口吻多角色目录冲突或全局配置被项目配置污染检查加载顺序确认项目目录的覆盖文件符合预期启动报 YAML 解析失败Header 区缩进错误或值里带了冒号没加引号检查键值对格式值内包含特殊符号时用引号包裹回答总是太长太啰嗦缺少回答长度限制或 Workflow 和 Behavior 规则冲突在 Behavior 区明确“常规问题控制在 150 字以内”说“已记录”但日志文件为空Memory 区配置了记录格式但框架侧日志功能没有开启检查 OpenClaw 的日志开关确认记录文件路径这张表没法覆盖所有情况但 80% 的配置问题基本都能在里面找到影子。我自己遇到最多的是前两类格式不生效和路径错误而且这两类问题往往在测试阶段就能暴露出来不要跳过验证直接进入正式使用。5.2 一个相对高效的排查思路遇到问题时不要东一榔头西一棒子地乱改配置。我的排查思路分四步基本能定位大部分问题。第一步先复现问题。一定要用一个稳定的测试问法复现比如“水温 30.5℃、氨氮 0.3”这条固定输入。不要用真实对话中那种上下文很长的问法因为变量太多。固定输入能帮你确认问题是配置问题还是临时对话上下文导致的。第二步看日志。重点看启动日志里有没有加载配置文件、运行日志里有没有报错信息。如果 AI 回答完全无视配置但日志显示配置加载成功那问题很可能出在配置内容本身而不是加载环节。第三步二分法注释配置。把模板里的一大半区块临时注释掉只留 Header 和 Profile然后测试“你是谁”。如果正常了再逐步取消注释加回来。每次只取消一小块定位到具体是哪个区块导致角色行为异常。这样做的好处是你不用靠猜每做一步都有反馈。第四步一次只改一个字段。很多人踩坑在于一口气改了五处结果 AI 的行为变了但不知道是哪一处生效的。我在调试时严格遵守“一次只改一个字段改完就重启测试”的原则虽然慢一点但每次都有明确的因果对应。这套思路是我从一个调试崩溃的下午总结出来的。当时 AI 又编数据又话痨又忘记边界我同时改了五处最后完全不知道哪个修复起作用。后来强制自己按这个流程重来一遍问题很快定位到 Behavior 区里一个语气设置的残留。5.3 几个我长期用的避坑习惯最后分享几个我长期用的习惯不是什么高深技巧但真的能省很多事。第一个习惯是把整个模板控制在 200 行以内。超过这个长度AI 对后面的规则记忆会明显变弱表现为前面几条规则执行得很好后面的规则时灵时不灵。宁可少写也要保证每条规则都被高频触发。如果信息量确实大我建议拆成一个精简版IDENTITY.md加一个详细知识文件而不是全部塞进身份配置里。第二个习惯是一开始就写好“紧急情况处理”规则。比如养虾场景里的大面积浮头、大量死虾这类情况一旦发生用户没有时间听 AI 讲完整的原理分析。我在 Boundary 区固定了应急动作的顺序开增氧机、停喂、换水、联系人工。你可以把这种“极端场景兜底条款”放进所有智能体配置里不管什么项目都适用。第三个习惯是固定日志字段不要自由发挥。模板里 Memory 区写的日期、塘号、水温、pH 这些字段是我调过多次才定下来的字段一旦固定后面生成周报、做统计都非常方便。如果你让 AI 每天用不同的字段记录最后数据根本没法汇总相当于白干。第四个习惯是允许 AI 说“我不确定”。很多智能体问题的根源在于模型总想给用户一个完整答案即使它并不知道答案。我每次都会在 Boundary 区强调如果不确定就明确说“这个需要进一步确认”而不是硬撑。一个敢于说“不确定”的助手比一个假装全知的助手可靠得多。模板里的“需要进一步确认的信息”这个输出项就是专门干这个用的。最后说点个人体会。我折腾 OpenClaw 和这份 IDENTITY.md真正理解到的不是“怎么让 AI 更像人”而是“怎么让 AI 出错时更可控”。模板里的水质参数会过时养殖流程会调整但那份“不编数据、不越界、紧急情况优先”的底线在大多数场景里都能复用。你把这套思路跑通了往后不管接入什么项目都会习惯性地先写一份边界清单而不是急着告诉 AI“你很聪明什么都能做”。先跑起来再一点一点调比一开始追求完美重要得多。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑