Solon v4.0.2

harness - 配置参考

</> markdown
2026年6月14日 下午10:58:56

HarnessEngine 的配置示例:

HarnessEngine engine = HarnessEngine.of("work", ".soloncode/")
    .systemPrompt("你是一个 AI 助手")
    .sessionWindowSize(8)
    .compressionThreshold(30, 30_000)
    .toolsAdd(ToolPermission.TOOL_ALL_FULL) // 设定工具权限
    .build();

可选配置:

1、核心配置项

配置项类型默认值描述
workspaceStringwork工作区
harnessHomeString.solon/马具主目录(例:.soloncode
systemPromptString/系统提示词
toolsSet<String>/工具权限配置(** = 所有工具;* = 仅公域工具)
disallowedToolsSet<String>/禁用工具配置(使用具体工具名)
defaultModelString/默认模型名(不指定则取 models 中第一个)
modelsMap<String, ChatConfig>/大模型配置
maxTurnsint20根代理最大循环步数
autoRethinkbooltrue最大步数自动续航(由 LLM 反思控制)
sessionWindowSizeint8会话历史窗口大小(新指令时使用几条历史消息)
compressionMaxMessagesint30触发上下文压缩的消息条数阈值
compressionMaxTokensint30000触发上下文压缩的内容长度阈值
compressionModelString/压缩用大模型(不指定则使用主模型)

models 模型配置参考:《模型配置与请求选项》

2、安全与行为配置

配置项类型默认值描述
sandboxEnabledbooltrue沙盒模式,启用时禁止访问绝对路径(只能访问工作区与用户主目录)
sandboxAllowUserHomebooltrue沙盒模式下允许访问用户主目录
sandboxSystemRestrictbooltrue沙盒系统级限制
hitlEnabledboolfalse是否启用人工审核(危险操作需人工确认)
subagentEnabledbooltrue是否启用子代理模式(自动委派任务给专家代理)
bashAsyncEnabledboolfalse是否启用 Bash 异步执行
memoryEnabledbooltrue是否启用心智记忆
userAgentString/用户代理标识(会自动传播给所有模型)
apiRetriesint3API 重试次数
mcpRetriesint3MCP 重试次数
modelRetriesint3模型重试次数

3、扩展配置

配置项类型默认值描述
mountsMountDir/挂载配置(alias 须以 @ 开头)
mcpServersMap<String, McpServerParameters>/Mcp 服务配置
apiServersMap<String, ApiSource>/Web Api 服务配置
lspServersMap<String, LspServerParameters>/LSP 服务配置
extensionsList<HarnessExtension>/扩展接口配置

附录、工具权限配置选择(tools)

工具名类型描述
**-所有公域 + 私域工具
*-仅所有公域工具
pi聚合微形命令行工具(包括工具:read, write, edit, bash)
hitl私域人工介入审核
generate私域动态生成子代理
restapi私域Web 服务 API 接入
mcp私域MCP 服务接入
lsp私域LSP 代码理解服务
code公域编码指引(自动分析项目类型、编译指令等)
codesearch公域网络代码搜索
websearch公域网络搜索
webfetch公域网页内容抓取
todo公域任务清单管理
skill公域专家技能调用
task公域子代理任务委派
bash公域Shell 命令执行
ls公域列出目录内容
grep公域递归内容搜索
glob公域通配符文件搜索
edit公域文件编辑(精准文本替换,支持多处原子编辑;含 write、read)
read公域读取文件内容
write公域写入文件内容

附录、运行时动态修改

HarnessEngine 构建完成后,仍可在运行时动态调整工具权限与模型(变更后会自动重建主代理,使其立即生效)。

  • 动态调整工具权限
engine.allowTool("websearch");           // 动态授权一个工具
engine.disallowTool("bash");             // 动态禁用一个工具

engine.allowToolReset(Arrays.asList("read", "write", "edit")); // 重置允许工具集
engine.disallowToolReset(Arrays.asList("bash"));              // 重置禁用工具集
  • 动态管理模型
engine.addModel(new ChatConfig().then(c -> {
    c.setApiUrl("https://api.deepseek.com");
    c.setApiKey("sk-***");
    c.setModel("deepseek-v4-flash");
}));                                     // 添加模型

engine.setDefaultModel("deepseek-v4-flash"); // 设定默认模型(影响主代理时自动刷新)
engine.removeModel("deepseek-v4-flash");     // 移除模型
  • 其它运行时配置
engine.setMaxTurns(30);
engine.setSessionWindowSize(8);
engine.setCompressionThreshold(30, 30_000);
engine.setSandboxEnabled(true);
engine.setHitlEnabled(false);
engine.setSubagentEnabled(true);