当前位置: 首页 > news >正文

agentscope-harness vs solon-ai-harness:Java 智能体「马具引擎」的双雄对决

2026 年,Java AI 智能体开发领域正在经历一场「运行时层」的竞赛。阿里系的 AgentScope Java 和杭州无耳的 Solon AI 框架,分别交出了各自对「AI Agent Harness」的理解答卷。本文从架构设计、功能覆盖、开发者体验三个维度,对两者进行深度对比分析。

一、背景:什么是「Harness」?

在 AI Agent 开发中,Harness(马具/套件) 是一个承上启下的概念。业界目前有两个极具启发性的定义:

  • 公式定义Agent = Model + Harness。模型提供推理,而 Harness 提供落地执行的实体。
  • 硬件类比:Model 是 CPU(计算核心),Context 是内存(瞬时寻址),而 Harness 则是操作系统(资源调度与环境隔离)。

没有 Harness 的 Agent 就像一个漂浮在大脑中的灵魂——虽然能思考,但无法稳定地感知物理世界、无法受控地操作工具,更无法在复杂的长程任务中保持状态。

框架 所属生态 Harness 模块名 底层框架要求
AgentScope Java 阿里巴巴 / AgentScope AI agentscope-harness JDK 17+,独立运行
Solon AI 无耳科技 / OpenSolon solon-ai-harness JDK 8+,可嵌入任意框架

二、架构设计对比

2.1 agentscope-harness:单体式「全副武装」运行时

AgentScope 的 Harness 模块定位非常清晰——一个功能完备的智能体增强运行时。核心类 HarnessAgent 实现了 AgentStateModule 双接口,通过委托模式包装底层的 ReActAgent

模块结构(9 大子系统):

io.agentscope.harness.agent/
├── filesystem/        # 文件系统抽象(本地/远程/沙箱三种模式)
├── hook/              # 生命周期钩子(8+ 内置 Hook)
├── memory/            # 记忆管理(刷盘、压缩、合并)
├── sandbox/           # 沙箱运行环境(Docker 隔离)
├── session/           # 会话持久化
├── store/             # 命名空间存储
├── subagent/          # 子智能体编排
├── tool/              # 内置工具集(文件/Shell/记忆)
└── workspace/         # 工作区管理

设计哲学: 「大而全,开箱即用」。HarnessAgent 的 Builder 模式暴露了 30+ 配置项,从文件系统到子智能体编排,从记忆压缩到沙箱管理,一应俱全。开发者可以用最少的代码构建一个生产级的智能体。

HarnessAgent agent = HarnessAgent.builder().name("MyAgent").model("openai:gpt-5.5")          // 字符串模型 ID.workspace("/path/to/workspace")  // 工作区路径.enablePlan()                     // 启用计划本.compaction(CompactionConfig.builder().triggerMessages(20).build()).filesystem(SandboxFilesystemSpec.builder()  // 沙箱文件系统.client(dockerClient).build()).subagent(SubagentSpec.builder()  // 子智能体.name("researcher").build()).build();

2.2 solon-ai-harness:引擎式「克制而有力」运行时

Solon 的 Harness 模块同样是一个完整自包含的智能体编排与执行引擎,核心类 HarnessEngine 以 Builder 模式构建,整合了主代理、子代理、技能池、MCP 网关、REST API、HITL 安全审计等全套能力。

模块结构与依赖包能力全图:

solon-ai-harness 核心模块
│
├── HarnessEngine.java          # 马具引擎核心(Builder 模式,组装主代理/子代理)
├── HarnessProperties.java      # 统一配置属性(models/tools/skillPools/mcpServers...)
├── HarnessExtension.java       # 扩展接口(自由定制代理行为)
├── agent/
│   ├── AgentDefinition.java    # 代理定义(支持 Markdown YAML Frontmatter 解析)
│   ├── AgentFactory.java       # 代理工厂(权限矩阵 + 工具装配)
│   ├── AgentManager.java       # 代理管理器(注册/加载/扫描 agents 目录)
│   ├── TaskSkill.java          # 子代理技能(task/multitask 工具)
│   └── GenerateTool.java       # 动态代理生成工具
├── code/
│   └── CodeSkill.java          # 代码工程规约技能(技术栈识别)
├── hitl/
│   └── HitlStrategy.java       # 人工介入策略(bash 安全审计规则)
└── permission/└── ToolPermission.java     # 工具权限枚举(18+ 细粒度权限)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Maven 依赖包及其提供的能力:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┌─ solon-lib(Solon 基础运行时)
│  └── 依赖注入、配置、AOP 等核心能力
│
├─ solon-ai-agent(传递引入 solon-ai-core)
│  ├── ReActAgent / SimpleAgent / TeamAgent(推理-行动代理体系)
│  ├── ChatModel / ChatConfig(LLM 调用核心接口)
│  ├── @ToolMapping / @Param(工具声明注解)
│  ├── Skill / AbsSkill(技能抽象体系)
│  ├── SummarizationInterceptor(上下文摘要拦截器)
│  └── AgentSession 会话管理
│
├─ solon-ai-skill-cli(终端操作技能包)
│  ├── TerminalSkill:bash, read, write, edit, glob, grep, ls
│  └── ExpertSkill:skill 技能调用、技能发现
│
├─ solon-ai-skill-web(联网技能包)
│  ├── WebsearchTool(联网搜索)
│  ├── WebfetchTool(网页内容抓取)
│  └── CodeSearchTool(代码仓库搜索)
│
├─ solon-ai-skill-lsp(语言服务协议技能包)
│  ├── LspManager(LSP 服务器生命周期管理)
│  └── LspSkill(代码诊断、符号导航等 IDE 级能力)
│
├─ solon-ai-skill-restapi(REST API 技能包)
│  └── RestApiSkill(解析 OpenAPI 文档,动态生成 REST 调用工具)
│
├─ solon-ai-skill-toolgateway(工具网关技能包)
│  └── ToolGatewaySkill(MCP Server 能力桥接为 Agent 工具)
│
└─ solon-serialization-snack4(JSON 序列化)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
可选扩展模块(按需引入,不内嵌于 harness):
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┌─ solon-ai-skill-memory(长期记忆 + 心智模型)  ← 重点
│  ├── MemSkill(5 大核心操作:提取/搜索/召回/巩固/修剪)
│  ├── RedisClient KV 存储 + Lucene 语义索引
│  ├── 基于重要性的动态 TTL 过期策略
│  └── 心智模型自动注入(作为 Agent "前意识")
│
├─ solon-ai-skill-diff(文本差异对比)
├─ solon-ai-skill-lucene(Lucene 搜索技能)
├─ solon-ai-skill-mail / pdf / data / file / ...(更多生态技能)
└─ HarnessExtension SPI 插件(~/.soloncode/extensions/ 目录)

设计哲学: 「克制而有力」。不追求一个大而全的 Builder 类堆砌 30+ 配置项,而是通过 HarnessProperties 统一配置 + HarnessEngine 核心编排 + 各专能模块协作的方式,保持每个类的职责单一。依赖包按能力域清晰拆分(cli / web / lsp / restapi / toolgateway / memory),开发者可按需引入。同时,通过 HarnessExtension 扩展点和 CommandRegistry 命令注册表,提供极强的可定制性。

// 配置属性
HarnessProperties props = new HarnessProperties(".solon/");
props.addTools(ToolPermission.TOOL_ALL_FULL);
props.setWorkspace("/path/to/workspace");
props.setSandboxMode(true);
props.setHitlEnabled(true);// 构建引擎
HarnessEngine engine = HarnessEngine.of(props).sessionProvider(sessionProvider).build();// 使用主代理
engine.prompt("分析当前项目的技术栈").session(session).options(o -> {o.toolContextPut(HarnessEngine.ATTR_CWD, "/path/to/project");}).call();

2.3 架构哲学对比

维度 agentscope-harness solon-ai-harness
设计理念 单体式增强运行时,单一 Builder 类 引擎式编排框架,Properties + Engine + 模块协作
最低 JDK 17+(使用 sealed class、record 等新语法) 8+(兼容性更广,覆盖信创国产化场景)
核心抽象 HarnessAgent(30+ Builder 配置项) HarnessEngine(引擎核心)+ HarnessProperties(配置)
文件系统 内置 3 种模式(本地/远程/沙箱) 本地文件系统 + 沙箱模式(sandboxMode 开关)
响应式 基于 Project Reactor(Mono/Flux) 基于 Project Reactor(stream() 流式输出)
学习曲线 较陡(30+ Builder 配置项) 中等(配置驱动 + 清晰的模块边界)
核心依赖 agentscope-core solon-ai-agent、solon-ai-skill-* 系列模块

三、核心功能深度对比

3.1 工作区管理(Workspace)

agentscope-harness 的工作区管理极为丰富:

  • 自动加载 AGENTS.mdMEMORY.mdKNOWLEDGE.md 等上下文文件
  • 支持自定义额外上下文文件(如 SOUL.mdPREFERENCE.md
  • WorkspaceManager 统一管理文件系统的所有读写操作
  • Token 预算控制(maxContextTokens,默认 8000)
  • 三种文件系统后端:本地、远程、Docker 沙箱

solon-ai-harness 的工作区管理有完整的目录结构约定:

{harnessHome}/
├── sessions/     # 会话存储(支持 FileAgentSession 持久化)
├── skills/       # 技能定义(Markdown 格式)
├── agents/       # 子代理定义(Markdown + YAML Frontmatter)
├── memory/       # 主代理记忆
├── commands/     # 自定义命令
├── download/     # 下载缓存
└── channels/     # 连接通道
  • 配置加载有明确的优先级链:资源文件 → 工作区配置 → 用户目录配置 → 程序旁边配置
  • 系统提示词通过 AGENTS.md 文件定义,支持工作区和用户目录两级配置
  • 会话支持 FileAgentSession 持久化,可在 ~/.soloncode/sessions/ 下跨会话恢复

3.2 安全机制(Sandbox & HITL)

agentscope-harness 在沙箱方面投入巨大:

  • 完整的 Docker 沙箱生命周期管理(SandboxManagerSandboxLifecycleHook
  • 分布式沙箱支持(SandboxDistributedOptions),跨实例的状态恢复
  • 基于 Redis 的执行守卫(RedisSandboxExecutionGuard
  • 工作区快照(SandboxSnapshotSpec),支持归档提取和恢复

solon-ai-harness 采用了「沙箱模式 + HITL 安全审计」的双重安全策略:

  • 沙箱模式sandboxMode):终端操作在受限模式下运行,禁止绝对路径、系统目录删除、网络配置修改等危险操作
  • HITL 人工介入HitlStrategy):对 bash 命令进行多层安全审计——
    • 命令注入防御(拦截反引号、$(...)、设备重定向)
    • 系统级安全(拦截 sudo/chown/chmod/kill/reboot)
    • 路径边界(禁止 ../ 回溯和敏感目录访问)
    • 包管理变更拦截(install/remove/commit)
    • 网络行为拦截(curl/wget/ssh)
    • 管道安全限制(只允许只读工具链)
    • 文件操作拦截(递归删除 rm -rf 和文件移动 mv)
  • 通过 HITLInterceptor 拦截器实现,可在引擎构建时自定义拦截规则

3.3 上下文摘要与会话管理(Context Engineering)

agentscope-harness 的记忆系统是一大亮点:

  • 三层记忆架构:短期记忆 + 长期记忆 + 工作区记忆(MEMORY.md
  • 自动刷盘MemoryFlushHook 在模型调用前后自动将记忆持久化到工作区
  • 智能压缩CompactionHook 在上下文溢出时自动触发对话压缩
  • 紧急恢复:上下文溢出时自动降低阈值强制压缩并重试
  • 工具结果驱逐ToolResultEvictionHook 将超大工具输出卸载到文件系统

solon-ai-harness 的上下文工程体系同样完善:

  • SummarizationInterceptor(摘要拦截器):当 Token 接近上限时自动触发摘要压缩
    • 采用 CompositeSummarizationStrategy 组合策略:
      • KeyInfoExtractionStrategy:提取关键信息("去水")
      • HierarchicalSummarizationStrategy:分层滚动更新摘要
    • 可配置 summaryWindowSize(默认 30)和 summaryWindowToken(默认 30000)
    • 支持独立的摘要模型(summaryModel),可使用更便宜的模型执行摘要任务
  • AgentSessionProvider:会话持久化接口,支持自定义实现
    • 内置 InMemoryAgentSession(内存会话)
    • 内置 FileAgentSession(文件持久化会话,支持断点续传)
  • sessionWindowSize(默认 8):控制短期工作记忆窗口大小
  • autoRethink(自我反思):Agent 在达到步数上限时可自动反思并扩展

此外,solon-ai-harness 还可通过引入 solon-ai-skill-memory 模块获得长期记忆与心智模型能力,形成"短期摘要 + 长期心智"的双层记忆架构。详见第 3.8 节。

3.4 子智能体编排(Subagent)

agentscope-harness 的子智能体系统非常成熟:

  • 声明式子智能体(通过 subagents/*.md 文件定义)
  • 叶子节点保护(子智能体不能递归生成子智能体)
  • 后台执行和会话持久化
  • 模型覆盖(子智能体可独立指定模型)

solon-ai-harness 的子智能体编排同样功能完备:

  • TaskSkill:内置 taskmultitask 两个工具
    • task:委派单一任务给专项子代理(串行执行)
    • multitask:并行执行多个互不依赖的子任务
  • AgentDefinition:支持 Markdown + YAML Frontmatter 格式定义子代理
    ---
    name: code_reviewer
    description: 代码审查专家
    tools:- read- grep- bash
    maxTurns: 10
    ---
    你是一个资深的代码审查专家...
    
  • AgentManager:代理管理器,支持多级代理池(全局 ~/.soloncode/agents/ + 本地 {workspace}/.soloncode/agents/
  • GenerateTool:运行时动态创建子代理并持久化到文件
  • AgentFactory:根据 AgentDefinition 自动构建 ReActAgent,独立配置工具权限和步数
  • 子代理支持独立的工具权限隔离(上下文隔离)

3.5 工具体系(Tools)

agentscope-harness 的内置工具:

  • 文件操作工具(读/写/搜索)
  • Shell 执行工具
  • 记忆搜索/获取工具
  • 会话搜索工具

solon-ai-harness 拥有极为丰富的工具体系,18+ 细粒度权限控制:

权限 说明
read 读取文件完整内容
write 写入文件完整内容
edit 修改文件内容(含 read+write+edit)
bash 运行 Shell 命令
glob 使用模式匹配查找文件
grep 基于正则表达式的全文检索
ls/list 列出目录内容
webfetch 抓取网页内容
websearch 互联网搜索
codesearch 代码仓库搜索
skill 调用预定义的专家技能模块
code 编码指导模块
todo 任务清单管理
mcp MCP 服务工具
restapi REST API 工具
task 调度子代理
generate 动态创建子代理
hitl 人工介入拦截
lsp LSP 语言服务协议集成
* 全部公开工具
** 全部工具(含私有)

此外还具备:

  • CliSkillProvider:技能池管理器,支持多级技能池(@global@local@skills@skillhub
  • CodeSkill:代码工程规约技能,自动识别技术栈(Maven/Node),生成构建与测试指令
  • LspSkill:LSP 语言服务协议集成,支持代码诊断、类型信息等 IDE 级别的能力
  • ToolGatewaySkill(MCP 网关):动态加载 MCP Server 工具
  • RestApiSkill:将 REST API 作为 Agent 工具调用
  • CommandRegistry:自定义命令注册表

3.6 生命周期与拦截器

agentscope-harness 内置 8+ 个生产级钩子(Hooks):

Hook 功能
AgentTraceHook 智能体推理和工具执行的链路追踪
CompactionHook 对话上下文自动压缩
MemoryFlushHook 记忆自动刷盘
MemoryMaintenanceHook 记忆维护和合并
SandboxLifecycleHook 沙箱生命周期管理
SessionPersistenceHook 会话自动持久化
SubagentsHook 子智能体编排调度
ToolResultEvictionHook 工具结果自动驱逐
WorkspaceContextHook 工作区上下文注入

所有钩子都可以通过 disable*() 方法独立禁用。

solon-ai-harness 采用「内置拦截器 + 自由扩展」双层架构:

  • SummarizationInterceptor:上下文摘要拦截器,基于组合策略自动压缩
  • HITLInterceptor:人工介入拦截器,对高危工具调用进行安全审计
  • 拦截器可在引擎构建时通过 Builder 注入自定义实现
  • HarnessExtension 扩展点:通过 addExtension() 自由扩展引擎行为(详见第 3.9 节)

3.7 协议支持

协议 agentscope-harness solon-ai-harness
MCP(工具集成) ✅ 通过 agentscope-core ToolGatewaySkill(MCP 网关)
ACP(Agent 协作协议) ❌ 未内置 ✅ 支持 stdio/WebSocket 传输
REST API 集成 ❌ 未内置 RestApiSkill
LSP(语言服务协议) ❌ 未内置 LspSkill + LspManager
A2A(多智能体协作) ✅ agentscope-extensions-nacos-a2a 通过 ACP 协议实现
OpenTelemetry ✅ 可插拔 Tracer SPI ✅ 通过 Solon 可观测插件

3.8 长期记忆与心智模型:solon-ai-skill-memory

前面提到 agentscope-harness 拥有令人印象深刻的三层记忆架构。solon-ai-harness 虽然没有将记忆模块内嵌为必须依赖,但通过可选引入 solon-ai-skill-memoryorg.noear:solon-ai-skill-memory,v3.9.5+),提供了另一种更具启发性的记忆范式——心智模型(Mental Model)

核心设计理念:不是简单地「存储和检索」,而是模拟人类认知过程,让 Agent 拥有「提取 → 搜索 → 召回 → 巩固 → 修剪」的完整认知循环。

五大核心操作(通过 @ToolMapping 暴露为 Agent 工具):

操作 方法名 说明
提取 mem_extract 将事实、偏好或进度存入心智模型。若同名 Key 已存在,返回旧记录触发"认知对比"反思
语义搜索 mem_search 通过自然语言描述在心智模型中寻找相关记忆碎片
精确召回 mem_recall 通过 Key 获取该认知条目的完整细节
认知巩固 mem_consolidate 将多个低层事实碎片整合为高层偏好模型(importance 自动设为 10,永久存储)
认知修剪 mem_prune 删除错误、重复或过时的认知

基于重要性的动态 TTL 过期策略

重要性评分(importance) TTL 说明
≥ 10 永久存储(-1) 生命周期关键点
5 ~ 9 30 天 核心规约、行为偏好
1 ~ 4 7 天 琐碎事实、临时细节

两层存储架构

层级 技术 职责
KV 存储 RedisClient 主存储,结构化记忆数据,基于 importance 的 TTL 物理过期
语义索引 Lucene(或向量数据库) 多租户隔离的语义检索,支持模糊/自然语言搜索

心智模型自动注入:这是最精妙的设计。MemSkill 覆写了 AbsSkill.getInstruction(Prompt) 方法,在每次对话开始前自动注入高价值"热记忆"作为 Agent 的"前意识"——不需要 Agent 主动调用工具检索,心智模型已经在它的"潜意识"中了。

// 集成示例(solon-ai-skill-memory 为可选依赖)
MemSearchProvider memSearch = new MemSearchProviderLuceneImpl();
MemSkill memSkill = new MemSkill(redisClient, memSearch);// 通过 HarnessExtension 注入到引擎
props.addExtension((agentName, builder) -> {builder.defaultSkillAdd(memSkill);
});

对比 agentscope-harness 的记忆系统

维度 agentscope-harness solon-ai-skill-memory
架构方式 内嵌必须依赖 可选引入,按需加载
存储后端 文件系统(MEMORY.md)+ 可选长期记忆 Redis + Lucene 双层
记忆生命周期 刷盘 + 压缩 + 合并 提取 + 搜索 + 召回 + 巩固 + 修剪
过期策略 无自动过期 基于重要性的动态 TTL
认知模型 有(心智模型 + 自动注入前意识)
多租户 有(userId 隔离)

3.9 自由扩展:addExtension 机制

如果说 agentscope-harness 的扩展方式是「在 Builder 中预设所有选项」,那么 solon-ai-harness 的 addExtension 则提供了编程式的无限扩展可能

HarnessExtension 接口定义(v3.10.4+,@Preview):

@Preview("3.10")
public interface HarnessExtension {/*** 配置代理* @param agentName 当前代理名称(主代理为 "__main__")* @param agentBuilder ReActAgent.Builder 实例,可自由定制*/void configure(String agentName, ReActAgent.Builder agentBuilder);
}

这个接口极为简洁——只有一个方法。但正是这种简洁,赋予了它无限的组合可能。

三种注册方式

// 方式一:编程式注册(最直接)
HarnessProperties props = new HarnessProperties(".solon/");
props.addExtension((agentName, builder) -> {// 添加自定义工具builder.defaultToolAdd(myCustomTool);// 添加自定义技能builder.defaultSkillAdd(mySkill);// 添加生命周期拦截器builder.defaultInterceptorAdd(new ReActInterceptor() {@Overridepublic void onAgentStart(ReActTrace trace) {System.out.println("任务要开始了...");}@Overridepublic void onReason(ReActTrace trace, AssistantMessage message) {System.out.println("又思考了...");}@Overridepublic ChatResponse interceptCall(ChatRequest req, CallChain chain) throws IOException {System.out.println("要调用工具了...");return chain.doIntercept(req);}});
});// 方式二:YAML 配置声明
// config.yml:
// soloncode:
//   extensions:
//     - "com.example.MyExtension"// 方式三:Solon SPI 自动装配(推荐,即插即用)
// 1. 实现 HarnessExtension 接口
// 2. 创建 Plugin 类注册到 Solon 容器
// 3. 在 META-INF/solon/ 下声明 SPI
// 4. JAR 包放入 ~/.soloncode/extensions/ 目录

通过 Extension 可操作的 Agent Builder 能力

方法 能力
defaultToolAdd(Tool) 添加自定义工具
defaultSkillAdd(Skill) 添加自定义技能
defaultInterceptorAdd(ReActInterceptor) 添加生命周期拦截器
systemPrompt(Function) 设置/覆盖系统提示词
maxSteps(int) 设置最大推理步数
autoRethink(boolean) 启用/禁用自我反思
sessionWindowSize(int) 设置会话窗口大小
defaultToolContextPut(String, Object) 注入工具上下文变量

关键设计细节:每个代理创建时(包括主代理和所有子代理),所有注册的 Extension 都会被逐一调用。这意味着你可以:

  • 为所有代理统一注入日志/审计拦截器
  • 为特定代理注入专项工具
  • 动态调整不同代理的行为参数

与 agentscope-harness 的对比

维度 agentscope-harness solon-ai-harness
扩展方式 Builder 预设选项 + Hook SPI HarnessExtension 接口 + SPI 自动装配
扩展粒度 Agent 级别 代理级 + 全局级(按 agentName 区分)
工具注入 构建时固定 运行时动态
第三方插件 需手动集成 JAR 包放入 extensions/ 即插即用

四、模型管理与多模型支持

agentscope-harness

  • 通过字符串模型 ID 指定模型(如 "openai:gpt-5.5"
  • 子智能体可独立指定模型

solon-ai-harness 的模型管理更加灵活:

  • HarnessProperties 支持配置多个 ChatConfigList<ChatConfig> models
  • 支持运行时动态切换主模型:engine.switchMainModel("gpt-5.5")
  • 通过 getModelOrMain(name) 方法按名称获取模型
  • 支持独立的摘要模型(summaryModel),可用更便宜的模型执行摘要任务
  • 模型支持重试配置(modelRetries)、API 重试(apiRetries)、MCP 重试(mcpRetries
  • 支持 UserAgent 统一配置

五、开发者体验对比

5.1 上手难度

agentscope-harness

  • 优势:一个 Builder 搞定所有配置,文档齐全
  • 挑战:30+ 配置项的选择困难,概念较多(IsolationScope、NamespaceFactory 等)
  • 适合:需要快速搭建复杂 Agent 的团队,阿里云生态用户

solon-ai-harness

  • 优势:配置驱动(HarnessProperties),API 直觉化(engine.prompt("...").call()
  • 挑战:需了解 Solon 框架基础概念
  • 适合:需要定制化 Agent 的团队,企业级开发场景

5.2 部署与兼容性

维度 agentscope-harness solon-ai-harness
JDK 版本 17+(强制) 8 ~ 25(全兼容)
GraalVM 原生镜像 支持 支持(Solon 原生支持)
信创国产化 需适配 天然支持(国产框架)
启动速度 一般(Reactor 依赖链) 极快(Solon 内核 0.3m)
内存占用 中等 低(Solon 节省 50%)
代码体积 大(9 大子系统) 中等(引擎式精简)

5.3 实战验证

agentscope-harness:阿里巴巴内部大规模使用,经过 AgentScope 生态的实战打磨。

solon-ai-harness:已在 SolonCode CLI 项目中经过了三个月的深度打磨与实战验证。SolonCode CLI 完全基于 solon-ai-harness 构建,是框架能力的最佳实战证明——支持 CLI 交互、Web 界面、ACP 协议三种运行模式。

六、代码风格对比:同一场景的不同写法

场景:创建一个带工作区、会话和安全的智能体

agentscope-harness 写法:

HarnessAgent agent = HarnessAgent.builder().name("CodeReviewer").model("openai:gpt-5.5").sysPrompt("你是一个代码审查专家。").workspace("/project/code-review").compaction(CompactionConfig.builder().triggerMessages(20).build()).longTermMemory(redisLongTermMemory).longTermMemoryMode(LongTermMemoryMode.BOTH).enablePlan().build();Msg response = agent.call(Msg.userMsg("请审查这个 PR"),RuntimeContext.builder().sessionId("review-001").userId("user-123").build()
).block();

solon-ai-harness 写法:

// 1. 配置属性
HarnessProperties props = new HarnessProperties(".solon/");
props.addTools(ToolPermission.TOOL_READ, ToolPermission.TOOL_GREP, ToolPermission.TOOL_BASH);
props.setWorkspace("/project/code-review");
props.setSystemPrompt("你是一个代码审查专家。");
props.setSessionWindowSize(8);
props.setSummaryWindowSize(30);
props.setSandboxMode(true);
props.setHitlEnabled(true);
props.addModel(ChatConfig.of("openai:gpt-5.5").build());// 2. 会话提供者
AgentSessionProvider sessionProvider = sessionId -> new FileAgentSession(sessionId, "/project/.solon/sessions/" + sessionId);// 3. 构建引擎
HarnessEngine engine = HarnessEngine.of(props).sessionProvider(sessionProvider).build();// 4. 执行任务
AgentSession session = engine.getSession("review-001");
engine.getMainAgent().prompt("请审查这个 PR").session(session).call();

场景:动态创建一个代码审查子代理

agentscope-harness 写法:

// 通过配置在 subagents/ 目录下定义,或通过 Builder 添加
HarnessAgent agent = HarnessAgent.builder().subagent(SubagentSpec.builder().name("code_reviewer").model("openai:gpt-4o-mini").build()).build();

solon-ai-harness 写法:

// 方式一:代码动态创建
AgentDefinition definition = new AgentDefinition();
definition.setSystemPrompt("你是一个代码审查专家。");
definition.getMetadata().addTools(ToolPermission.TOOL_READ, ToolPermission.TOOL_GREP);
definition.getMetadata().setMaxSteps(10);ReActAgent subagent = engine.createSubagent(definition).build();
subagent.prompt("审查 src/main/java 目录下的代码").session(session).call();// 方式二:通过 Markdown 文件定义(agents/code_reviewer.md)
// 方式三:通过 GenerateTool 让 AI 动态创建

七、选型建议

选 agentscope-harness 的场景:

  1. 重度 Docker 隔离需求:需要完整的容器化沙箱、分布式会话管理
  2. 阿里云生态用户:与 DashScope、百炼等服务深度集成
  3. 三层记忆架构:需要短期/长期/工作区三层记忆管理和语义搜索
  4. 快速原型验证:一个 Builder 搞定所有,适合快速验证想法

选 solon-ai-harness 的场景:

  1. 信创国产化项目:需要国产框架,兼容 JDK 8 老系统
  2. 已有 Solon 项目:零迁移成本,无缝集成
  3. 追求轻量与高性能:对启动速度和内存有严格要求(微服务、Serverless)
  4. 需要 REST API/LSP/ACP 集成:框架内置这些能力,无需额外开发
  5. 多模型动态切换:运行时灵活切换不同模型
  6. 细粒度工具权限控制:18+ 权限项,精确控制 Agent 能力边界
  7. 定制化 CLI/Web/协议智能体:已有 SolonCode CLI 作为实战参考

共存场景:

对于大型企业,两者并不冲突:

  • 新项目(JDK 17+,阿里云部署,Docker 隔离需求强)可用 agentscope-harness
  • 老项目改造(JDK 8,信创要求,轻量级需求)可用 solon-ai-harness
  • 通过 ACP/A2A 等协议,两个框架的 Agent 可以互相发现和调用

八、总结

维度 agentscope-harness solon-ai-harness
功能完备性 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐
架构复杂度
上手难度 中高
JDK 兼容性 17+ 8 ~ 25
沙箱隔离 ⭐⭐⭐⭐⭐(Docker 级) ⭐⭐⭐⭐(策略级)
工具丰富度 ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐(18+ 权限)
上下文工程 ⭐⭐⭐⭐⭐(三层记忆) ⭐⭐⭐⭐⭐(组合策略摘要 + 可选心智模型)
长期记忆 ⭐⭐⭐⭐(内置) ⭐⭐⭐⭐⭐(solon-ai-skill-memory,动态 TTL + 认知巩固)
协议支持 ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐(MCP/ACP/REST/LSP)
模型管理 ⭐⭐⭐ ⭐⭐⭐⭐⭐(多模型动态切换)
可扩展性 ⭐⭐⭐⭐(Hook SPI) ⭐⭐⭐⭐⭐(addExtension + SPI 即插即用)
生产就绪度 高(大厂背书) 高(SolonCode CLI 验证)

一句话总结:

agentscope-harness 是一座装备齐全的军事堡垒——Docker 沙箱、三层记忆、分布式会话,重型场景一应俱全。solon-ai-harness 是一台精密的组合机床——18+ 工具权限、MCP/ACP/REST/LSP 四协议集成、多模型动态切换、心智模型可选加载、addExtension 无限扩展,灵活而强大。

两者代表了 Java AI 智能体运行时的两种哲学:深度防护 vs 广度赋能。选择哪个,取决于你的场景——需要 Docker 级隔离选 agentscope,需要协议广覆盖和工具细粒度控制选 solon。但无论如何,Java 开发者在 AI Agent 时代,终于有了真正强大的选择。


本文基于 agentscope-java main 分支和 Solon AI v3.10.5 的公开源码进行分析,最后更新:2026-05-13。

http://www.jsqmd.com/news/808904/

相关文章:

  • ARM RAS架构中的PE错误处理机制解析
  • 基于Teamclaw自建团队知识库:从Docker部署到协作实践
  • 汽车电子架构演进:ECU整合与域控制器的关键技术挑战与实践
  • 初创团队如何利用Taotoken的Token Plan实现AI成本精细管控
  • Telegram机器人审批按钮系统开发指南:从内联键盘到回调处理
  • AI智能体舰队监控:Mission Control实战部署与运维指南
  • Windows环境下,5分钟快速部署Kettle数据集成环境(含Spoon图形界面启动)
  • 告别臃肿模拟器:Windows原生APK安装器的效率革命
  • 在Windows11上通过QEMU搭建ARM64服务器:以openEuler为例
  • 免拆机解锁AX201网卡黑苹果上网:OC引导+HeliPort实战指南
  • ChatLaw终极指南:如何用中文法律大模型构建你的专属AI律师
  • 高效部署工具完全手册:APK Installer在Windows平台的专业实践指南
  • 构建可信智能体:KYA框架下的透明度、可解释性与工程实践
  • 2026年无锡充电桩运营系统与社区生态物联解决方案横评指南 - 精选优质企业推荐官
  • 别再手动画表格了!用AxureRP9中继器5分钟搞定动态数据增删改查
  • 青岛丰唇医生哪个好?2026年口碑不错的专家名单 - GrowthUME
  • 小学AI教育隐私保护:从技术架构到实践部署的伦理框架
  • iPhone本地离线AI部署实战:从模型选择到Swift集成全流程
  • 从芯片设计到知识管理:构建工程师的数字遗产与团队智慧资产
  • Blender水流模拟革命:Waterways插件程序化生成动态河流
  • 华为和信通院发了一份AI安全报告
  • 2026年,这些目前知名的衬氟轴流泵制造商,你都知道吗? - GrowthUME
  • ClawZero:基于信息流控制的AI智能体执行防火墙实战指南
  • 放心之选!西安超声炮正版仪器究竟凭啥赢得大家信任? - GrowthUME
  • 开源AI健康数据分析框架:构建个人化健康数据中枢与洞察引擎
  • 创意编码工具包vibecodekit:从图形渲染到音频交互的完整开发指南
  • 2026年柯桥高中数学辅导机构对比评测:基于“可验证制度”的深度解析 - nigel37
  • 终极JPEGView图像查看器:轻量高效的Windows图片浏览解决方案
  • AI驱动下核扩散风险量化分析:PETs与DETs的攻防博弈与相对优势指数模型
  • 2026年无锡充电桩运营系统深度横评:从社区两轮到全场景SaaS赋能解决方案 - 精选优质企业推荐官