config.yml 配置详解
2026年3月31日 上午9:24:57
SolonCode CLI 安装后,配置文件位于 ~/.soloncode/bin/config.yml。
1、核心配置项
| 配置项 | 默认值 | 描述 |
|---|---|---|
tools | ** | 工具权限配置(** = 所有工具;* = 仅公域工具) |
maxSteps | 30 | 根代理最大循环步数 |
maxStepsAutoExtensible | true | 最大步数自动续航(由 LLM 反思控制) |
sessionWindowSize | 8 | 会话历史窗口大小(新指令时使用几条历史消息) |
summaryWindowSize | 15 | 触发摘要压缩的消息条数阈值 |
summaryWindowToken | 15000 | 触发摘要压缩的内容长度阈值 |
2、安全与行为配置
| 配置项 | 默认值 | 描述 |
|---|---|---|
sandboxMode | true | 沙盒模式,启用时禁止访问绝对路径(只能访问工作区与用户主目录) |
thinkPrinted | true | 是否打印 AI 的内心思考(建议关掉,关闭后输出更简洁) |
hitlEnabled | false | 是否启用人工审核(危险操作需人工确认) |
subagentEnabled | true | 是否启用子代理模式(自动委派任务给专家代理) |
3、CLI 控制台配置
| 配置项 | 默认值 | 描述 |
|---|---|---|
cliEnabled | true | 是否启用控制台交互 |
cliPrintSimplified | true | 是否简化打印(工具调用结果显示为一行) |
4、Web 服务配置(可选)
| 配置项 | 默认值 | 描述 |
|---|---|---|
webEnabled | false | 是否启用 Web 服务(一般不建议开启) |
webEndpoint | /cli | Web 服务端点路径 |
5、ACP 协议配置(可选,IDE 集成)
| 配置项 | 默认值 | 描述 |
|---|---|---|
acpEnabled | false | 是否启用 ACP 协议(IDE 连接用) |
acpTransport | websocket | 传输方式(stdio 或 websocket) |
acpEndpoint | /acp | WebSocket 传输端点 |
6、工具权限配置选择(tools)
| 工具名 | 类型 | 描述 |
|---|---|---|
** | - | 所有公域 + 私域工具 |
* | - | 仅所有公域工具 |
hitl | 私域 | 人工介入审核 |
generate | 私域 | 动态生成子代理 |
restapi | 私域 | Web 服务 API 接入 |
mcp | 私域 | MCP 服务接入 |
codesearch | 公域 | 网络代码搜索 |
websearch | 公域 | 网络搜索 |
webfetch | 公域 | 网页内容抓取 |
todo | 公域 | 任务清单管理 |
skill | 公域 | 专家技能调用 |
task | 公域 | 子代理任务委派 |
bash | 公域 | Shell 命令执行 |
ls | 公域 | 列出目录内容 |
grep | 公域 | 递归内容搜索 |
glob | 公域 | 通配符文件搜索 |
edit | 公域 | 文件编辑(含 write、edit、undo) |
read | 公域 | 读取文件内容 |
示例:限制危险操作
soloncode:
tools: "*,read,edit" # 仅公域工具 + 文件读写
7、上下文大小优化
影响上下文大小的因素:
| 因素 | 说明 |
|---|---|
AGENTS.md | 系统提示词,建议控制在 200 行以内 |
tools | 工具越多,上下文占用越大 |
restApis / mcpServers | 扩展接口会转换为工具 |
sessionWindowSize | 历史消息加载越多,占用越大 |
maxSteps | 执行步数越多,累计占用越大(但会有摘要压缩控制) |
优化建议:
- 大上下文模型(如 GPT-4-turbo):调大
summaryWindowSize和summaryWindowToken - 小上下文模型:调小这两个参数,更频繁地触发摘要压缩
8、chatModel 模型配置
支持所有兼容 OpenAI API 的模型服务:
soloncode:
chatModel:
apiUrl: "https://api.deepseek.com/v1/chat/completions" #这里要用完整地址(不是 baseUrl)
apiKey: "sk-xxxxxx"
model: "deepseek-chat"
timeout: "120s"
详细配置参考:《模型配置与请求选项》
9、完整配置示例
solon.logging.appender:
console:
enable: false # 控制台日志(启用会干扰 CLI)
file:
level: DEBUG
soloncode:
# 核心配置
tools: "**"
maxSteps: 20
maxStepsAutoExtensible: true
sessionWindowSize: 8
summaryWindowSize: 15
summaryWindowToken: 15000
# 安全配置
sandboxMode: true
thinkPrinted: true
hitlEnabled: false
subagentEnabled: true
# CLI 配置
cliEnabled: true
cliPrintSimplified: true
# Web 服务(可选)
webEnabled: false
webEndpoint: "/cli"
# ACP 协议(IDE 集成)
acpEnabled: false
acpTransport: "websocket"
acpEndpoint: "/acp"
# AI 模型配置
chatModel:
apiUrl: "https://api.deepseek.com/v1/chat/completions"
apiKey: "sk-xxxxxx"
model: "deepseek-chat"
timeout: "120s"
# 技能池(可选)
skillPools:
"@shared": "/path/to/shared-skills"
# REST API 接入(可选)
restApis:
api1:
docUrl: "https://api.example.com/openapi.json"
apiBaseUrl: "https://api.example.com"
headers: { Authorization: "Bearer xxx" }
# MCP 服务接入(可选)
mcpServers:
memory:
command: "npx"
args: [ "-y", "@modelcontextprotocol/server-memory" ]