Appearance
工具与技能管理
管理界面需要分别展示本地工具、MCP 工具、Feign 工具的来源、Schema、权限、健康状态、超时和最近错误。工具注册成功不代表业务可用,执行时仍需做权限和参数校验。
Skill 管理支持用户 Skill、官方仓库、Markdown/ZIP 导入、版本快照、导出、启停和 Agent 绑定。导入前校验目录结构、文件名、大小、路径、危险指令和版本唯一性。
工具注册到执行的链路
本地 @Tool、FeignRegistryInitializer 扫描的 @FeignToolRegistration 方法和 Nacos tools/list 都会汇聚到工具注册表,最终保存为 ai_tool 及其 Schema。注册只说明服务发现成功,Agent 是否可见还要经过 Agent toolIds、工具启用状态、租户权限、MCP/Sandbox 依赖和当前 WebSearchMode 过滤。
ToolCallNode 的直接执行顺序是本地 Sandbox/DocSpace/VFS、平台 Web Search、AiToolEntity 对应的 Feign/HTTP/MCP executor。默认外层超时约 60 秒,工具自身 timeoutMs 为正数时覆盖默认值;失败最多三次外层尝试。副作用工具必须结合 toolCallId、ToolExecutionJournal 和 HITL,不能因为模型再次生成相同参数就盲目重放。
技能发布与运行时
SkillController 负责 Skill CRUD、启停、导入和导出,OfficialSkillRepositoryController 负责官方仓库和发布包。Skill、SkillVersion、SkillFile 和 package change 共同描述一个可复现 release;Agent 绑定的是 release,而非正在编辑的草稿。
SkillCallNode 先按 currentTask.targetResource 查找,再按任务描述匹配 Agent 白名单;随后读取当前 release 的 SKILL.md,可用 path/filePath、offset、limit 延迟读取文件,并写入 activeSkillName、runtimePath、workspacePath。skill_call 只激活和读取说明,不自动运行脚本;脚本必须经 Sandbox 工具、安全参数和审计链路执行。
上线检查
- 工具 Schema 能否被目标模型解析,必填字段、枚举和长度是否明确。
- 是否声明读操作/副作用、取消、超时、重试和 HITL 策略。
- 参数是否绑定 tenant、user、session 和 workspace,结果是否脱敏和可分页。
- Skill release 是否冻结文件索引、运行路径和回滚版本。
- checkpoint 恢复能否区分
COMPLETED、FAILED、STARTED未知结果。 - 是否写入工具日志、轨迹、审计和用量统计。