文档/扩展

让 Agent 新增工具

Harness 自进化 V1:在会话里让 Agent 新增或修改一个工具,批准后从下一条消息起生效。

更新于 约 3 分钟

ActSpace 的工具、上下文和行为方式都是插件。Harness 自进化的第一版先开放其中一块:在会话里让 Agent 写一个新工具,或者改它之前写的工具,你批准后,这个会话从下一条消息起就能调用它。

这是产品理念里「Harness 自进化」方向的 V1。遇到失败自动派生新版本、在沙箱里评估后由你决定,属于下一步,见开发计划。

怎么用

  1. 切到 Agent 模式。
  2. 直接说出要什么工具,例如「帮我新增一个工具,把 CSV 转成 Markdown 表格」,或者「修改之前创建的 csv 转换工具,支持制表符分隔」。
  3. Agent 会读取内置的开发 Skill,查看当前有哪些工具,然后在项目里创建工具源码、编辑、构建。构建失败时它会读报错继续改。
  4. 构建通过后,Agent 会先请求初始化候选工具,再请求启用。两次都会弹出审批,你可以拒绝。
  5. 启用成功后,工具结果卡会显示已绑定。从你的下一条消息开始,这个会话就能调用新工具。

不需要切换到特别的模式,也不需要手动安装。

生效时机

当前这条消息对应的整次执行,始终使用开始时的那套工具,中途不会换。新工具从下一条消息开始的执行里出现。正在运行的子智能体也沿用父任务的那一套。

已经提交的版本可以回滚到之前的版本或原始状态,回滚同样需要审批。没提交的候选可以丢弃,版本历史不会被删除。

能做什么,不能做什么

V1 支持的是无外部依赖的单文件 TypeScript 工具:输入和输出都是 JSON,适合文本处理、格式转换和数据变换。工具清单、注册、权限声明这些由系统生成,Agent 只写工具的定义和实现。

  • 可以新增工具,也可以修改由这个功能生成的工具。
  • 内置工具没有可编辑的源码快照,不能改。
  • 不能安装 npm 包,不能修改 Agent Host 或管理服务本身。
  • 失败自动触发、评估沙箱、创建 Actor 都不在这一版里。

安全边界

新工具和其他插件一样在应用进程里运行,是你批准后信任的代码,不是隔离沙箱。单文件和 import 限制是这一版的格式约定,不能防住恶意代码。启用前请看一下 Agent 写了什么。

新工具调用时照常走工具与审批的权限规则。工具已经写入的文件、已经发出的网络请求,不会因为回滚而撤销。

文件放在哪里

  • 工具源码在当前项目的 .actspace/evolution/<工作区 ID>/ 下,是 tool.json 和 implementation.ts 两个文件,可以直接打开看。
  • 构建产物和版本记录保存在 ActSpace 的本机数据目录里。删掉项目里的源码目录,已经启用的版本仍然可以加载。

开发 Skill actspace-plugin-development 随应用内置,会出现在 Skills 列表里,可以禁用,不能卸载。

在 GitHub 上编辑 ↗