Skip to content

配置说明

GolemBot 使用一个配置文件:助手目录根目录下的 golem.yaml

完整示例

yaml
name: my-assistant
engine: claude-code          # cursor | claude-code | opencode | codex
model: claude-sonnet         # 可选,首选模型

# 可选:跳过 Agent 权限确认
skipPermissions: true

# 可选:角色/人设定义 — 写入 AGENTS.md 的 System Instructions 节,
# 引擎每次会话读取一次(不是每条消息前都拼接)
systemPrompt: |
  你是「运营小助手」,团队的专属运营伙伴,专注用户运营、内容运营和活动策划。
  你不是 OpenCode,不是编程助手,永远不要用 OpenCode 的身份介绍自己。
  在 IM 场景中回复时,不要在消息中包含原始 URL。

# 可选:生产可用性配置
timeout: 120                 # 引擎超时(秒,默认:300)
maxConcurrent: 20            # 最大并发 chat() 数(默认:10)
maxQueuePerSession: 2        # 每个用户最大排队数(默认:3)
sessionTtlDays: 14           # 闲置会话保留天数(默认:30)

# 可选:IM 通道配置
channels:
  feishu:
    appId: ${FEISHU_APP_ID}
    appSecret: ${FEISHU_APP_SECRET}
  dingtalk:
    clientId: ${DINGTALK_CLIENT_ID}
    clientSecret: ${DINGTALK_CLIENT_SECRET}
  wecom:
    corpId: ${WECOM_CORP_ID}
    agentId: ${WECOM_AGENT_ID}
    secret: ${WECOM_SECRET}
    token: ${WECOM_TOKEN}
    encodingAESKey: ${WECOM_ENCODING_AES_KEY}
    port: 9000

# 可选:Gateway 服务配置
gateway:
  port: 3000
  host: 127.0.0.1
  token: ${GOLEM_TOKEN}

字段说明

必填

字段类型说明
namestring助手名称
enginestring引擎类型:cursorclaude-codeopencodecodex

可选

字段类型默认值说明
modelstring首选模型,格式因引擎而异 — 详见各引擎文档
skipPermissionsbooleantrue是否跳过 Agent 权限确认
timeoutnumber300引擎调用超时(秒)。超时后 CLI 进程被终止并触发 type: 'error' 事件
maxConcurrentnumber10全局最大并发 chat() 调用数
maxQueuePerSessionnumber3每个 sessionKey 最大排队请求数
sessionTtlDaysnumber30闲置会话超过此天数后在下次启动时清理
systemPromptstring角色/人设指令,写入 AGENTS.md## System Instructions 节,引擎将其作为系统级上下文读取一次。不会拼接到每条用户消息前,多轮对话的 token 消耗保持平稳
channelsobjectIM 通道配置
gatewayobjectGateway 服务设置

channels

配置一个或多个 IM 平台。Gateway 只会启动已配置的通道。

gateway

字段类型默认值说明
portnumber3000HTTP 服务端口
hoststring127.0.0.1绑定地址
tokenstringHTTP API 认证 Bearer Token

环境变量占位符

敏感字段支持 ${ENV_VAR} 语法。加载时,GolemBot 会从 process.env 中解析这些值。

yaml
gateway:
  token: ${GOLEM_TOKEN}    # 从 process.env.GOLEM_TOKEN 解析

这适用于 channelsgateway 中的所有字符串值。在 golem.yaml 旁放一个 .env 文件 — CLI 启动时会自动加载。

.env 示例

sh
FEISHU_APP_ID=cli_xxxxxxxxxx
FEISHU_APP_SECRET=xxxxxxxxxx
GOLEM_TOKEN=my-secret-token
ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxx

TIP

.env 加入 .gitignore,提交 .env.example(不含真实值)用于共享。

各引擎模型名称格式

model 字段的格式因引擎不同而不同:

引擎格式示例查看可用值
cursorCursor 模型名称claude-sonnet-4-5Cursor → Settings → Models
claude-codeAnthropic model IDclaude-sonnet-4-6claude models
opencodeprovider/modelanthropic/claude-sonnet-4-5opencode models
codexOpenAI 模型名称codex-mini-latestcodex models

详见各引擎页面中的完整模型表格和运行时覆盖用法。

技能不在配置中声明

技能golem.yaml 中声明。skills/ 目录是唯一的事实来源 — 目录里有什么技能,助手就有什么能力。详见技能

GolemConfig TypeScript 类型

typescript
interface GolemConfig {
  name: string;
  engine: string;
  model?: string;
  skipPermissions?: boolean;
  timeout?: number;             // 秒,默认 300
  maxConcurrent?: number;       // 默认 10
  maxQueuePerSession?: number;  // 默认 3
  sessionTtlDays?: number;      // 默认 30
  channels?: {
    feishu?: { appId: string; appSecret: string };
    dingtalk?: { clientId: string; clientSecret: string };
    wecom?: {
      corpId: string;
      agentId: string;
      secret: string;
      token: string;
      encodingAESKey: string;
      port?: number;
    };
  };
  gateway?: {
    port?: number;
    host?: string;
    token?: string;
  };
}

基于 MIT 协议 发布。