一个进程内的
完整 Agent 运行时

从模型输出到工具执行,从插件加载到人工审批——DSH Java 把智能体运行所需的全部机制收进一个 Spring Boot 进程,单实例即可运行。

ReactLoopAgent:思考与行动交替推进

每一次用户输入都会开启一个 ReAct turn:模型推理 → 发起工具调用 → 执行并回填结果 → 继续推理,直到产出最终答复或触达步数上限。

用户输入HTTP / SSE 进入会话聚合
模型推理组装消息与可用工具清单
工具调用ToolCallExecutor 统一执行
结果回填观察写入事件日志
续步 / 终止单 turn 上限 50 步

循环控制

循环由领域层驱动,不依赖外部编排框架,行为完全可预测、可测试。

  • 单 turn 上限 50 步,防止失控循环
  • 每一步都产生结构化事件,可回放
  • 模型异常自动终止并回写失败状态

流式输出

基于 SSE 将模型 token、工具调用开始/结束实时推送到控制台。

  • SSE 协议分事件类型推送,前端增量渲染
  • 工具调用与文本输出交错呈现
  • 断线后可通过事件日志恢复上下文

统一工具系统:内置真实能力

所有工具——无论内置、插件还是 MCP——都经过同一个 ToolCallExecutor 执行,统一鉴权、统一审计、统一 Hook。

文件工具

在工作区沙箱内读写文件,路径越界直接拒绝。

  • 读文件 / 写文件 / 列目录
  • 写操作进入权限矩阵评估

Shell 工具

在受控环境中执行命令,高风险命令默认要求人工审批。

  • 命令风险分级:只读 / 写 / 危险
  • 执行超时与输出截断保护

Web 工具

搜索与网页抓取,让 Agent 获取实时外部信息。

  • Web 搜索 + 页面内容抓取
  • 抓取结果净化后再注入上下文

用户提问工具

Agent 可以主动向用户澄清问题,形成双向对话闭环。

  • AskUserQuestion 挂起循环等待输入
  • 用户回答后续步继续执行

PRE / POST Hook 链

工具执行前后都可挂载 Hook:PRE_HOOK 可拦截、改写或拒绝调用;POST_HOOK 可审计、上报或触发副作用(如商城案例中的客服审计事件)。Hook 按链式执行,是治理与扩展的关键切面。

三种插件扩展模式

插件只依赖轻量 Types SPI 契约,通过 META-INF/plugin.yaml 描述,SPI loader 创建运行实例,工具注册进 ToolRegistry 后才暴露给 Agent。

JJava Native

插件 JAR 通过 URLClassLoader 隔离加载,类空间与宿主分离,避免依赖冲突。性能最好,适合 Java 团队。

  • ▸ URLClassLoader 类隔离
  • ▸ 实现 SPI 契约即注册工具
  • ▸ 热安装 / 激活 / 停用

NNode Bridge

Node.js 插件以 sidecar 进程运行,宿主与插件通过 JSON-RPC 通信。适合复用 npm 生态能力。

  • ▸ sidecar 进程隔离
  • ▸ JSON-RPC 标准协议
  • ▸ 崩溃不影响宿主进程

MMCP stdio

直接接入任意 MCP Server,把外部工具生态(文件系统、数据库、SaaS 连接器)挂进 Agent。

  • ▸ 标准 MCP stdio 通道
  • ▸ 工具自动发现与注册
  • ▸ 与内置工具同等治理

权限矩阵与人工审批

Agent 的每一步高风险动作都在提交期经过权限矩阵评估;命中风险的调用进入审批队列,由人在控制台确认后才执行。

工具调用Agent 发起调用请求
权限评估风险矩阵:只读 / 写 / 高危
审批队列高危调用挂起等待
人工确认控制台批准或拒绝
执行回写结果与审批状态落库

默认进入审批的动作

  • 高风险 Shell 命令(写、删除、网络变更)
  • 写文件与覆盖已有文件
  • 插件安装、激活与停用
  • 子进程启动与外部进程调用

治理能力

  • 审批状态全程入事件日志,可审计
  • 拒绝原因回写给 Agent,调整后续计划
  • 权限矩阵可按部署环境收紧或放宽

事件溯源:一切皆可回放

Session Event Log 记录用户输入、模型输出、工具调用与审批状态。会话、任务、目标、审批与模型设置全部落库,支持回放、审计与轨迹分析。

记录什么

  • 用户输入与模型完整输出
  • 每次工具调用的参数、结果与耗时
  • 审批请求、决策与操作人
  • 任务目标、计划、待办的状态流转

存储与切换

  • 默认 MySQL,生产级持久化
  • standalone profile 一键切 H2 文件库
  • 零外部依赖即可本地完整体验
localhost:8090 · 轨迹视图
DSH Java 轨迹视图:会话事件回放与审计

原生控制台,无前端构建链

原生 JavaScript 实现,本地化 Markdown 渲染、代码高亮与 XSS 净化。会话、工作区、终端、模型、插件与审批,打开浏览器即可管理。

localhost:8090 · 对话
DSH Java Web 控制台对话界面