{ "_说明": "模型不出厂预置:models 里只放你真配过的(首页向导或 设置→模型 从厂商预设一键添加,填了 Key 才算一条)。provider 可选 'anthropic'(Claude 官方)或 'openai'(OpenAI 兼容接口:DeepSeek/通义Qwen/智谱GLM/Kimi/Ollama 本地模型都用这个)。api_key 也可以用环境变量 ANTHROPIC_API_KEY / OPENAI_API_KEY 提供。", "provider": "openai", "anthropic": { "api_key": "", "model": "claude-opus-5" }, "openai": { "_预设示例": { "DeepSeek": { "base_url": "https://api.deepseek.com/v1", "model": "deepseek-chat" }, "通义Qwen": { "base_url": "https://dashscope.aliyuncs.com/compatible-mode/v1", "model": "qwen-max" }, "智谱GLM": { "base_url": "https://open.bigmodel.cn/api/paas/v4", "model": "glm-4-plus" }, "Kimi": { "base_url": "https://api.moonshot.cn/v1", "model": "moonshot-v1-32k" }, "Ollama本地": { "base_url": "http://localhost:11434/v1", "model": "qwen3:14b" } }, "base_url": "https://api.deepseek.com/v1", "api_key": "", "model": "deepseek-chat" }, "server": { "port": 3800 }, "agent": { "max_steps": 25, "tool_timeout_ms": 120000, "_max_runtime_ms_说明": "单趟任务(含专家子代理)的墙上时间预算,撞到就强制收尾。默认 30 分钟:短剧那类要出十几段配音、再跑十几次 ffmpeg 编码的活儿,10 分钟多半在半路被掐,前面花掉的钱全白扔。", "max_runtime_ms": 1800000, "_auto_continue_rounds_说明": "撞到步数/时间上限但活儿还没干完时,自动重置预算接着跑的最大轮数。0 = 关闭(默认)。开了之后长任务会照着 PROGRESS.md 的进度接着做,直到做完或轮数用光;手动停的不会续跑。注意每一轮都是真花钱,所以默认关着——要不要多花这笔钱是你的决定。", "auto_continue_rounds": 0, "_continue_gate_说明": "自动续跑之前先问判断模型一句:撞上限停下的这一趟,用户交代的事到底还有没有没做完的。说「没剩了」并且它自己也拿得准,就不再续这一轮——省下的是一整份时间和步数预算。PROGRESS.md 里还有没打勾的条目时不问(那已经是确定的答案,白花钱)。默认关,要 auto_continue_rounds 大于 0 才有意义。开关在 设置 → 智能体 →「确认没做完才接着做」。", "continue_gate": false, "_memory_gate_说明": "agent 自己调 remember 往长期记忆里写之前,先问判断模型一句:这句话下个月还用得上吗。说用不上、而且确定度到 80% 就不收,回执里告诉它该改成怎么记。拦的是「这次把第 3 行改成了 8081」这类只在这一趟里成立的过程细节——记下来会跟着往后每一趟任务进系统提示词。用户在设置里亲手敲的那份记忆不归它管;说不准、问不成一律照旧记下。默认关。开关在 设置 → 智能体 →「AI 只存以后用得上的记忆」。", "memory_gate": false, "_ask_gate_说明": "agent 想弹 ask_user 打断你之前,先问判断模型一句:这一问非得你本人答不可吗。一轮里的头一问永远放行、一分钱不花;往后每一问才判——说「不必非问」并且确定度到 80% 就不弹,回执里让它自己挑个最合理的默认往下做,并在汇报里注明。拦的是「我写完前三节了要继续吗」这类汇报、「用 axios 还是 node-fetch」这类技术路线、以及换个说法又问一遍的。选错了整件事会白做的岔路不拦,拿不准也不拦。ask_user 是全场唯一不受转圈守卫管的工具,在它之前除了提示词没有别的闸。默认关。开关在 设置 → 智能体 →「少问我不必问的问题」。", "ask_gate": false, "_skill_gate_说明": "开工之前先问判断模型一道单选:这活儿该先照哪个技能做(选项是装着的技能名加一个「都不对口」)。它挑了一个并且确定度到 70%,就把那份技能全文挂进系统提示词,模型动手前就看见了。挑「都不对口」或拿不准,照旧交给模型自己想。用户在消息里点了名(「/ppt-master」或直接写技能名)的,不用开这个开关也会直接加载、一分钱不花。一轮里只问一次;已经加载过技能的不问;专家子任务不问。默认关。开关在 设置 → 智能体 →「没指定技能时自动挑一个」。", "skill_gate": false, "_push_gate_说明": "定时任务推之前先问判断模型一句:这一轮跟上一次真推出去的那条比,有没有新东西。说没有、确定度到 70% 就不推——运行记录照常留着全文和没推的理由,只是不响这一声铃。红的、出错的、挂了疑问的一律照推。比的是上一次真推出去的那条,所以某一轮判错了,攒下的变化下一次会一起推给你。默认关。开关在 设置 → 智能体 →「定时任务没新内容就不通知」。", "push_gate": false, "ask_user_timeout_ms": 300000, "llm_timeout_ms": 300000, "_gen_parallel_max_说明": "出图 / 出片 / 配音 这类生成工具,一轮里最多同时跑几条。范围 1-4,默认 2:一集短剧十几个镜头,一条条排队最坏要等一两个小时;但这类每条都花钱(视频按条计费),所以比只读工具那档保守得多。设成 1 就是回到老样子,全部排队。", "gen_parallel_max": 2, "_max_parallel_tasks_说明": "同时跑几个任务。0 = 按物理内存自动定(8G 3 个 / 16G 5 个 / 32G 8 个 / 更大 12 个)。多出来的排队,不中断,任务时间从开始执行算起。截图、渲染、合成和本机引擎另有更紧的上限(8G 1 件 / 16G 2 件 / 32G 3 件)。", "max_parallel_tasks": 0, "_thinking_说明": "思考模式档位:auto=跟随模型自己的默认(什么参数都不发)/ off=关闭 / low / medium / high。各家参数名不同,映射表在 src/core/model/thinking.js", "thinking": "auto", "_second_opinion_说明": "定时任务跑绿之后,再拿判断模型看一眼:这一轮真办完了吗。只问那些裁定判据主动让路的绿(汇报正文超过 400 字的那一段),而且只挂疑问、不改判。默认关:每一条这样的绿都要多发一道题(一万次约 0.5 美元),花不花这笔钱由你定。开关在 设置 → 智能体 →「定时任务办完后再核实一遍」。", "second_opinion": false }, "search": { "_说明": "web_search 工具的搜索 API。provider=jina 时用 s.jina.ai(去 jina.ai 免费领 key);api_key 留空则自动回退免费 DuckDuckGo", "provider": "jina", "api_key": "" }, "langfuse": { "_说明": "执行追踪。打开后,每趟任务的模型调用、工具调用、token 花销会发到你填的 Langfuse 上,在网页里一层层展开看。自己用 Docker 搭一个就全在自己机器里;填官方 cloud.langfuse.com 就是发给别人,所以默认关着。公钥私钥在 Langfuse 项目设置里生成。", "enabled": false, "host": "https://cloud.langfuse.com", "public_key": "", "secret_key": "" }, "mcp_servers": [], "_mcp_示例": [ { "name": "filesystem", "command": "npx", "args": [ "-y", "@modelcontextprotocol/server-filesystem", "D:/某个目录" ] } ], "im": { "feishu": { "app_id": "", "app_secret": "", "notify_target": "", "verification_token": "" }, "wecom_bot_webhook": "", "webhook_secret": "openworkbuddy-secret-请修改" }, "models": [], "active_model": "" }