企业版阅读约 2 分钟7 种语言

让 AI 智能体提议代码工具,由管理员审批

当智能体反复处理同一个多步骤任务时,它可以通过 code_propose_tool 提议一个可复用的代码工具。提议本身不会运行任何内容,也不会授予任何权限;管理员在 AI Skills 中审阅程序后,一键即可创建工具,该工具为只读,并使用调用者自己的权限。以下是 AnythingMCP 中的具体工作方式,逐步说明。

HC作者:HelpCode 团队更新于 2 分钟阅读 在 GitHub 开源

无需信用卡 · 7 天试用 · 提供自托管方案

  • 7 天免费试用
    无需信用卡
  • 符合 GDPR,SOC 2 就绪
    数据驻留欧盟,审计日志
  • 在 GitHub 开源
    开源 · AGPL-3.0
  • 支持 ChatGPT、Claude、Gemini
    任何兼容 MCP 的客户端

摘要

当智能体反复处理同一个多步骤任务时,它可以通过 code_propose_tool 提议一个可复用的代码工具。提议本身不会运行任何内容,也不会授予任何权限;管理员在 AI Skills 中审阅程序后,一键即可创建工具,该工具为只读,并使用调用者自己的权限。以下是 AnythingMCP 中的具体工作方式,逐步说明。

TL;DR: 如果智能体每周回答“按渠道统计的月收入”时都要重写同一个程序,那它不应该每次都重写,但也不应该能自行创建工具。在 AnythingMCP 的代码模式中,它采取折中的做法:调用 code_propose_tool,并提供名称、描述、程序以及值得保留的理由。这只会记录一条提议,不会做其他任何事:不运行任何代码,也不会出现任何工具。管理员在 AI Skills → Suggested 中找到它,阅读程序,然后点击 Create tool。新工具为只读,并以每个调用者自己的权限运行;任何额外权限都需要另行、有意识地编辑。自托管 AnythingMCP 自 v0.52.0 起可用,AnythingMCP Cloud 即将推出。

为什么是提议,而不是自行创建工具

智能体很擅长发现某个任务是机械重复的:同样的三次调用、同样的关联、同样的求和。把它变成已保存的工具,可以让下一次回答更快、更省成本、更一致。但工具同时也是你工作区中的一项长期能力,而其背后的程序是由可能读取过不可信内容的模型编写的。因此,智能体只能建议,由人来决定。这与 AnythingMCP 处理 AI 客户端提议的技能和公司记忆时采用的原则相同:智能体起草,管理员批准。

你需要准备什么

  • 自托管 AnythingMCP v0.52.1 或更高版本,并已配置代码运行器(设置方法见此处的步骤 1)。
  • MCP 服务器的代码模式设为 inline。只有 inline 才会提供 code_execute 和 code_propose_tool;tools 仅提供已保存的代码工具。在服务器的设置页面中设置(Code mode → Saved code tools + inline code,自 v0.52.1 起提供);参见代码工具教程的步骤 2。
  • 用户角色具备内联代码权限。工作区管理员默认拥有该权限。
  • 如 v0.52 发布时所宣布,内联代码和提议功能属于 Team 和 Enterprise 套餐。

步骤 1 — 智能体以内联方式完成任务

用户提出一个需要多次调用才能回答的问题,例如“10 月的收入,商店和 B2B 发票”。开启内联代码后,智能体会编写一个程序,并通过 code_execute 运行:只读,使用用户自己的权限,覆盖该服务器上用户有权访问的连接器。此类程序的样子请参见收入示例。

步骤 2 — 智能体提议保留它

当智能体发现这个模式值得保留时(自行判断,或因为用户说“把它保存为工具”),它会调用 code_propose_tool,并填写:

字段智能体填写的内容
name简短的工具名称,例如 monthly_revenue_by_channel
description工具的功能和返回内容,面向管理员和未来的调用者
code程序,与 code_execute 使用的程序主体类型相同
rationale值得保存的理由,例如“本月被询问四次;可替代约 20 次工具调用”
inputSchema可选:工具自身的参数,例如格式为 YYYY-MM 的 month

返回给智能体的答复很简单:提议已记录并等待审核,在管理员批准之前不会运行,也不会成为工具。同样的内容也可以告知用户。

步骤 3 — 管理员审阅

在侧边栏(Intelligence 下)打开 AI Skills,切换到 Suggested。提议会显示为标有 Code tool proposal 的卡片,其中包含:

  • 范围,以及一条说明:它由智能体提议,只读,以调用者的权限运行;
  • **Why:**智能体给出的理由;
  • **Does:**描述;
  • Program 及其字符数,可完整阅读;
  • 一条说明,指出工具将创建在哪个连接器上,以及写入权限或作者权限只能稍后在该连接器的工具页面中添加。
anythingmcp.internal/knowledge-graph
AI Skills 页面,All 标签页中有一条标有 Code tool proposal 的建议项 revenue_by_month:连接器为 Accounting,由智能体提议,只读,以调用者的权限运行;包含 Why 和 Does 文本、已展开的 419 个字符的 Program、说明创建后将在 Accounting 上添加一个只读代码工具,以及 Create tool 和 Dismiss 按钮
演示工作区中的一条代码工具提议:智能体的理由、工具的功能和完整程序,以及 Create tool 和 Dismiss 按钮。

像审阅一个小型 pull request 那样阅读这个程序:

  1. 它调用了哪些工具? 查看每一个 amcp.run('…')。它们是否与描述所承诺的一致,并且都是读取操作?
  2. 它返回什么? 只返回问题所需的内容,还是包含个人数据的完整记录?
  3. 循环是否合理? 分页能否结束、并行调用是否分批、是否无必要地对大表的每一行都发起调用。单次运行在 10 秒或 500 次工具调用后停止。
  4. 名称和描述是否足够清晰,使 AI 能在合适的时机调用它,并正确解释结果(含税还是不含税、哪个时间段、哪些系统)?

步骤 4 — 创建工具,或忽略提议

Create tool 会执行常规的工具创建检查:连接器必须属于同一工作区,并且适用套餐对已保存代码工具数量的限制。工具会创建在卡片中指明的连接器上:

  • 只读(只能调用不会修改数据的工具);
  • 以调用者身份运行(每次内部调用都会按调用者自己的角色进行检查);
  • 使用提议者在该服务器上的连接器。之后请打开该工具,把 Uses 缩小到它实际调用的连接器和工具。

Dismiss 会把提议移到 Dismissed 标签页。如果智能体不断提议你不想要的内容,请在服务器的指令中说明。

步骤 5 — 仅在需要时:有意识地增加权限

已创建的工具可以像其他代码工具一样,在该连接器的 MCP Tools 页面中编辑。有两项设置完全无法通过提议获得:

  • Allow write tools,即允许程序调用会修改数据的工具。需要 Enterprise。
  • Run as definer,即程序以作者的策展范围运行,而不是以调用者的权限运行。仅限管理员。

两者都会在你保存时重新检查。这正是该设计的要点:智能体永远无法提升自己的权限,因为提议始终是只读的、始终以调用者身份运行,并且仅限于提议用户本来就能访问的连接器。

为什么这样做是安全的

  • 提议是惰性的。 code_propose_tool 不会执行代码,也不会创建任何东西。
  • 没有权限提升。 被提议的工具只能引用提议者自己的连接器,并且初始为只读、以调用者身份运行。
  • 由人来决定。 只有管理员才能把提议变成工具,并且要经过与手写工具相同的检查。
  • 运行受控且可审计。 工具一旦创建,每次运行都会通过隔离的代码运行器,并连同每次内部工具调用一起记录。参见AI 智能体的安全代码执行。

FAQ

普通用户可以提议工具吗? 在代码模式为 inline 的服务器上,任何角色具备内联代码权限的用户都可以。没有该权限的用户既看不到 code_execute,也看不到 code_propose_tool。

智能体能看到它的提议是否被接受吗? 工具创建后,智能体会像看到其他工具一样,在服务器的工具列表中看到这个新工具,此后即可调用它。

我可以在创建工具之前编辑程序吗? 先创建,再像编辑其他代码工具一样,在该连接器的 MCP Tools 页面中编辑:程序、描述、参数、Uses。

相关阅读

这份指南对你有帮助吗?

60 秒内把 MCP 接入你的技术栈。

在托管云上启动 AnythingMCP,或在你自己的基础设施上自托管。免费试用 7 天,无需信用卡。

相关指南

企业

面向 AI 文件搜索的按角色文件夹权限:谁能在 Claude 和 ChatGPT 中看到哪些文件夹

让销售、采购和服务团队共用一个覆盖公司共享盘的 AI 文件搜索,同时让每个角色只能看到自己的文件夹。了解 AnythingMCP Enterprise 文件夹权限的工作方式(允许、拒绝、拒绝优先)、如何规划规则,以及不使用 Enterprise 时的替代方案。

EN
企业

与文档对话:RAG 还是文件搜索,哪种更适合公司文件服务器?

把文件上传到 Claude Projects 或 ChatGPT、在向量数据库上构建 RAG,或者把文件服务器的全文索引作为 MCP 工具提供给 AI:这三种方式在精确编号与数字、文件夹结构、时效性、权限和投入成本上有何不同,以及各自适合什么场景。

企业

用 AI 在 PDF 和 Excel 价格表中查找物料编号(以最新价格表为准)

向 Claude 或 ChatGPT 询问某个物料编号,即可从文件服务器上数百份 PDF 和 Excel 价格表中得到对应的价格行、供应商的文件名以及价格表的日期。精确搜索、带列名的 Excel 行和日期如何让 AI 始终使用当前有效的价格表。

企业

用 AI 按零件号查找技术图纸:搜索 PDF 图纸档案

让 Claude 或 ChatGPT 在包含数千份 PDF 图纸的档案中,按零件号、图号或材料查找技术图纸,读取标题栏并指出当前版本。PDF 图纸能做到什么、哪些文件(DWG、DXF、STEP)只能按名称查找,以及如何用 AnythingMCP File Search 完成设置。

企业

用 AI 搜索公司文件服务器:PDF、Excel 和 Outlook 文件

让 Claude、ChatGPT、Microsoft Copilot 和 Gemini 都能搜索网络共享、NAS 或文件服务器:对 PDF、Excel 表格、Word 和 Outlook .msg 文件进行全文搜索,保持同步,并按角色设置权限。可自托管,也可使用 AnythingMCP Cloud。

企业

用 AI 搜索电子邮件归档:Outlook .msg 和 .eml 文件及其附件

文件服务器或 NAS 上保存的电子邮件,可直接在 Claude 和 ChatGPT 中搜索:发件人、日期、主题、正文,以及 PDF、Excel 和 Word 附件中的文本。介绍 AnythingMCP File Search 能读取哪些格式(.msg、.eml)、不能读取哪些格式(.pst、.mbox),以及如何配置。