配置清单
配置管理 (ConfigStore)
所有配置文件读写现在通过 cococat/config_store.py 的 ConfigStore 统一管理。 它缓存文件内容并提供类型化接口,避免代码中散落的 json.load/yaml.safe_load 调用。
get_auth(provider)/set_auth(provider, key)— auth.jsonget_env(key)/set_env(key, value)— .env + os.environget_default(key)/save_defaults(data)— defaults.jsonget_channel_configs()/save_channel_configs(data)— main.yamlget_models()/save_models(data)— models.jsonget_custom_providers()/save_custom_providers(data)— providers.jsonget_coco_prompt()/save_coco_prompt(text)— prompts/coco.txtget_resident_configs()/save_resident_config(id, cfg)— residents/*.yaml
路径可通过环境变量覆盖:
COCOCAT_AUTH_FILE→ auth.jsonCOCOCAT_MODELS_FILE→ models.jsonCOCOCAT_CUSTOM_PROVIDERS_FILE→ providers.jsonCOCOCAT_ENV_FILE→ .env
运行时环境 (.env)
| 变量 | 说明 | 默认值 |
|---|---|---|
OPENAI_API_KEY | LLM API Key | — |
OPENAI_BASE_URL | LLM 接口地址 | https://api.deepseek.com |
LLM_MODEL | 模型名称 | deepseek-v4-flash |
WEB_PASSWORD | 面板登录密码 | — |
JWT_SECRET | JWT 签名密钥 | — |
JWT_EXPIRE_MINUTES | JWT 过期时间 | 480 |
API_KEY | 外部访问 API Key | — |
COCOCAT_WORKSPACE | 工作目录 | 项目根目录 |
EXEC_COMMAND_ALLOWED_MODES | 允许的权限模式 | WORKSPACE_WRITE,FULL_ACCESS |
LINUX_NAMESPACE_SANDBOX | Linux 命名空间隔离 | false |
LINUX_NETWORK_ISOLATION | 网络命名空间隔离 | false |
Agent 定义 (config/residents/*.yaml)
yaml
id: "leader"
name: "组长"
enabled: true
scene: "development"
config:
role: "组长"
objective: "协调团队工作"每个 agent 一个 YAML 文件。enabled: false 时 AgentPool 不会自动启动。
Agent 个性 (agents/{id}/profile.json)
json
{
"role": "资深工程师",
"objective": "负责代码审查和技术方案设计",
"traits": ["细致", "严谨"],
"background": "10年后端开发经验",
"rules": ["Always write tests"],
"gender": "male"
}写入后不可变(首次 hire 时写入,skip if exists)。
UI 显示 (agents/{id}/display.json)
控制 Web 面板中 agent 的显示样式(头像、颜色等)。
Agent 技能 (agents/{id}/skills/manifest.json)
json
{
"public": ["code_review"],
"private": []
}public: 其他 agent 可见的技能private: 仅自己可见
频道入口 (agents/{id}/entries.json)
json
{
"entries": [
{"type": "channel", "channel_type": "webhook", "config": {}}
]
}场景 (scenes/{id}/)
| 文件 | 说明 |
|---|---|
CONTEXT.md | 场景上下文描述,注入到 system prompt |
mounted_kbs.json | 挂载的知识库 ID 列表 |
roster.json | 场景中 agent 列表 |
skills/manifest.json | 场景级技能 (env_skills) |
skills/{name}.md | 技能定义文件 |
mounted_kbs.json
json
{"mounted": ["team-wiki", "product-docs"]}roster.json
json
{"agents": ["employee_a", "employee_b"]}技能注册 (skills/registry.json)
所有可用技能的索引,用于 search_skill 和 install_skill。
知识库 (knowledge/{kb_id}/)
| 文件 | 说明 |
|---|---|
purpose.md | 知识库用途描述 |
schema.md | Wiki 页面 schema 约束 |
index.md | 自动生成的索引 |
log.md | 自动生成的摄取日志 |
wiki/ | Wiki 页面目录 |
wiki/entities/ | 实体页面 |
wiki/concepts/ | 概念页面 |
raw/sources/ | 原始源文件(摄取输入) |