写在前面
这篇文章是我在真实业务场景下踩坑数周后整理出的实操指南,涵盖了从飞书权限配置到多 Agent 逻辑编排的所有细节。内容非常硬核且流程较长,适合喜欢深度钻研的朋友。 如果你的项目时间紧迫,或者希望跳过繁琐的排坑环节,直接获取一套稳定运行的'开箱即用'方案,我也提供付费的私有化部署与技术支持服务,欢迎通过文末方式私信交流,把专业的事交给实操过的人。
创建一个飞书应用

添加机器人

修改权限

{
"scopes": {
"tenant": [
"bitable:app:readonly",
"contact:contact.base:readonly",
"contact:user.base:readonly",
"docx:document:readonly",
"im:chat:readonly",
"im:message",
"im:message.group_at_msg:readonly",
"im:message.group_msg",
"im:message.p2p_msg:readonly",
"im:message:send_as_bot",
"im:resource",
"wiki:wiki:readonly"
],
"user": []
}
}

配置事件回调


添加事件



创建版本发布


发布后状态如下

openclaw配置
openclaw agents add job1
会在你的openclaw文件夹下创建一个新的工作空间

添加通道,这里是为了首次添加通道,如果之前添加过飞书,可以直接跳过这一步,后面可以通过修改openclaw.json来配置新的通道


选择飞书,输入飞书应用的appid和Secret,

操作完成,选择finished

完成上面配置后,会在openclaw.json中添加一个工作空间

在openclaw的目录下也会多一个文件夹

手动修改openclaw.json文件,
-
windows,可以在
C:\Users\用户名\.openclaw -
mac,在
~/.openclaw/
我的是windows,截图如下

手动添加bindings"bindings": [ { "agentId": "main", "match": { "channel": "feishu", "accountId": "main" } }, { "agentId": "job1", "match": { "channel": "feishu", "accountId": "job1" } } ],
手动修改channels,把第一步创建的飞书appid以及密钥写进来

"channels": {
"feishu": {
"enabled": true,
"connectionMode": "websocket",
"domain": "feishu",
"groupPolicy": "open",
"accounts": {
"job1": {
"enabled": true,
"appId": "cli_a94c85a101e29bd7",
"appSecret": "WrqYauEiv09tHBBQqkF80grn68riOprs",
"botName": "job1"
}
}
}
},
在飞书工作台找到创建的机器人job1

第一次聊天需要进行配置

复制这条命令,在控制台输入命令

再次聊天,这样我们的一个agent便创建完成

不同的agent配置不同的模型
如下,job1使用的是volcengine/doubao-seed-1-8-251228模型
"agents": {
"defaults": {
"model": "volcengine/deepseek-v3-2-251201",
"workspace": "C:\\Users\\admin\\.openclaw\\workspace",
"compaction": {
"mode": "safeguard"
}
},
"list": [
{
"id": "main"
},
{
"id": "job1",
"name": "job1",
"workspace": "C:\\Users\\admin\\.openclaw\\workspace-job1",
"agentDir": "C:\\Users\\admin\\.openclaw\\agents\\job1\\agent",
"model": "volcengine/doubao-seed-1-8-251228"
}
]
},
这里需要注意,这里添加修改的模型 "model": "volcengine/doubao-seed-1-8-251228",必须在agent文件夹下C:\Users\admin\.openclaw\agents\job1\agent的models.json的文件夹下的model的数组中必须要有doubao-seed-1-8-251228,如果没有的话,这个agent会使用默认模型

openclaw.json文件模板样式
{
"meta": {
"lastTouchedVersion": "2026.3.24",
"lastTouchedAt": "2026-03-31T07:47:32.868Z"
},
"wizard": {
"lastRunAt": "2026-03-31T02:32:46.413Z",
"lastRunVersion": "2026.3.24",
"lastRunCommand": "configure",
"lastRunMode": "local"
},
"auth": {
"profiles": {
"moonshot:default": {
"provider": "moonshot",
"mode": "api_key"
},
"kimi:default": {
"provider": "kimi",
"mode": "api_key"
}
}
},
"models": {
"mode": "merge",
"providers": {
"moonshot": {
"baseUrl": "https://api.moonshot.cn/v1",
"api": "openai-completions",
"models": [
{
"id": "kimi-k2.5",
"name": "Kimi K2.5",
"reasoning": false,
"input": [
"text",
"image"
],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 262144,
"maxTokens": 262144
}
]
},
"kimi": {
"baseUrl": "https://api.kimi.com/coding/",
"api": "anthropic-messages",
"models": [
{
"id": "kimi-code",
"name": "Kimi Code",
"reasoning": true,
"input": [
"text",
"image"
],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 262144,
"maxTokens": 32768
}
]
}
}
},
"agents": {
"defaults": {
"model": {
"primary": "kimi/kimi-code",
"fallbacks": [
"moonshot/kimi-k2.5",
"kimi/k2p5"
]
},
"models": {
"moonshot/kimi-k2.5": {
"alias": "Kimi"
},
"kimi/kimi-code": {
"alias": "Kimi"
},
"kimi/k2p5": {}
},
"workspace": "C:\\Users\\admin\\.openclaw\\workspace",
"compaction": {
"mode": "safeguard"
}
},
"list": [
{
"id": "main"
},
{
"id": "job1",
"name": "job1",
"workspace": "C:\\Users\\admin\\.openclaw\\workspace-job1",
"agentDir": "C:\\Users\\admin\\.openclaw\\agents\\job1\\agent",
"model": "volcengine/doubao-seed-1-8-251228"
},
{
"id": "coder",
"name": "coder",
"workspace": "C:\\Users\\admin\\.openclaw\\workspace-coder",
"agentDir": "C:\\Users\\admin\\.openclaw\\agents\\coder\\agent",
"model": "kimi/kimi-code"
},
{
"id": "xiaozhi",
"name": "xiaozhi",
"workspace": "C:\\Users\\admin\\.openclaw\\workspace-xiaozhi",
"agentDir": "C:\\Users\\admin\\.openclaw\\agents\\xiaozhi\\agent",
"model": "moonshot/kimi-k2.5"
}
]
},
"bindings": [
{
"agentId": "main",
"match": {
"channel": "feishu",
"accountId": "main"
}
},
{
"agentId": "job1",
"match": {
"channel": "feishu",
"accountId": "job1"
}
},
{
"agentId": "coder",
"match": {
"channel": "feishu",
"accountId": "coder"
}
},
{
"agentId": "xiaozhi",
"match": {
"channel": "feishu",
"accountId": "xiaozhi"
}
}
],
"commands": {
"native": "auto",
"nativeSkills": "auto",
"restart": true,
"ownerDisplay": "raw"
},
"channels": {
"feishu": {
"enabled": true,
"appId": "cli_a94fb",
"appSecret": "FjftBt",
"connectionMode": "websocket",
"domain": "feishu",
"groupPolicy": "open",
"accounts": {
"job1": {
"enabled": true,
"appId": "cli_",
"appSecret": "WrqY",
"botName": "job1"
},
"coder": {
"enabled": true,
"appId": "cli_",
"appSecret": "Vmbrv6",
"botName": "编程助手"
},
"xiaozhi": {
"enabled": true,
"appId": "cli",
"appSecret": "Iq3h",
"botName": "小智"
}
}
}
},
"gateway": {
"mode": "local",
"auth": {
"mode": "token",
"token": "63ef0fc"
}
},
"plugins": {
"entries": {
"feishu": {
"enabled": true
}
}
}
}