循环控制
循环由领域层驱动,不依赖外部编排框架,行为完全可预测、可测试。
- 单 turn 上限
50步,防止失控循环 - 每一步都产生结构化事件,可回放
- 模型异常自动终止并回写失败状态
每一次用户输入都会开启一个 ReAct turn:模型推理 → 发起工具调用 → 执行并回填结果 → 继续推理,直到产出最终答复或触达步数上限。
循环由领域层驱动,不依赖外部编排框架,行为完全可预测、可测试。
50 步,防止失控循环基于 SSE 将模型 token、工具调用开始/结束实时推送到控制台。
所有工具——无论内置、插件还是 MCP——都经过同一个 ToolCallExecutor 执行,统一鉴权、统一审计、统一 Hook。
在工作区沙箱内读写文件,路径越界直接拒绝。
在受控环境中执行命令,高风险命令默认要求人工审批。
搜索与网页抓取,让 Agent 获取实时外部信息。
Agent 可以主动向用户澄清问题,形成双向对话闭环。
工具执行前后都可挂载 Hook:PRE_HOOK 可拦截、改写或拒绝调用;POST_HOOK 可审计、上报或触发副作用(如商城案例中的客服审计事件)。Hook 按链式执行,是治理与扩展的关键切面。
插件只依赖轻量 Types SPI 契约,通过 META-INF/plugin.yaml 描述,SPI loader 创建运行实例,工具注册进 ToolRegistry 后才暴露给 Agent。
插件 JAR 通过 URLClassLoader 隔离加载,类空间与宿主分离,避免依赖冲突。性能最好,适合 Java 团队。
Node.js 插件以 sidecar 进程运行,宿主与插件通过 JSON-RPC 通信。适合复用 npm 生态能力。
直接接入任意 MCP Server,把外部工具生态(文件系统、数据库、SaaS 连接器)挂进 Agent。
Agent 的每一步高风险动作都在提交期经过权限矩阵评估;命中风险的调用进入审批队列,由人在控制台确认后才执行。
Session Event Log 记录用户输入、模型输出、工具调用与审批状态。会话、任务、目标、审批与模型设置全部落库,支持回放、审计与轨迹分析。
MySQL,生产级持久化standalone profile 一键切 H2 文件库