ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

IronClaw 工具发现评测契约:渐进式工具披露的检索基线、端到端基准与上线门禁

IronClaw 工具发现评测契约:渐进式工具披露的检索基线、端到端基准与上线门禁 人工智能AI 应用交互助手AI Agent【免费下载链接】ironclawIronClaw is an Agent OS focused on privacy, security and extensibility项目地址https://gitcode.com/gh_mirrors/iro/ironclaw点击查看免费下载导读本文基于 IronClaw 仓库 docs/internal/tool-discovery-evaluation.md 展开系统讲解 IronClaw 在改变「渐进式工具发现progressive tool discovery」交互之前必须满足的评测契约检索质量基线Retrieval baseline、端到端基准End-to-end benchmark与上线门禁Rollout gates。读完本文你将掌握REBORN_TOOL_DISCLOSURE五个披露模式臂的语义与选择方法、如何运行仓库内已固化的 50 工具/72 意图评测语料以及如何产出可复现、可审计的端到端评测报告。一、评测契约要解决的问题IronClaw 是一个以隐私、安全与可扩展性为核心的 Agent OS。当工具目录不断增长时把全部工具的完整 JSON Schema 一次性灌入模型上下文会带来 token 开销与上下文污染问题。为此IronClaw 引入了渐进式工具披露progressive tool disclosure不再全量披露授权工具而是通过tool_search→tool_describe→tool_call的紧凑协议按需检索、按需描述、再发起调用。改变这种交互方式之前仓库要求先满足 issue #7405 定义的证据要求核心原则是检索质量retrieval quality与端到端模型行为end-to-end model behavior是两套相互独立的测量任何一方都不能替代另一方。也就是说仅凭检索指标好看不能证明模型在实际任务中会用对工具仅凭端到端任务通过也不能证明检索排序本身没有退化。评测契约因此由「检索基线 端到端基准 上线门禁」三段组成。二、检索基线crate 级质量门禁与规模基线2.1 评测语料50 个工具、72 条人工判定意图检索质量门禁由ironclaw_loop_hostcrate 拥有入口是测试函数tool_search::tests::committed_corpus_quality_gate_and_benchmark_report定义在 crates/loop/ironclaw_loop_host/src/tool_search.rs。它从tests/fixtures/tool_search_relevance.json加载语料并断言语料本身合法至少 50 个工具且必须覆盖builtin、mcp、wasm、extension_lifecycle、provider五种工具类型源码中逐一校验缺失即失败60100 条判定意图当前语料为 72 条每条意图带有类别与相关性标注13 级且所有被判定工具必须真实存在于语料中意图必须覆盖九大检索类别精确名称exact_name、别名alias、规范能力 IDcanonical_id、参数parameter、嵌套 schemanested、歧义查询ambiguous、provider 名称provider、硬负例hard_negative与无匹配no_match。这保证了门禁既测「找得到」也测「不该找时别乱找」。2.2 质量门禁阈值与基准对比测试同时构建两套排序器并对比候选排序器candidateAuthorizedToolSearchIndex授权工具搜索索引基线排序器baselinelegacy_rank传统排序对应旧披露模式的检索方式。质量门禁不仅要求候选达到绝对阈值还要求候选必须实质性优于基线指标候选绝对门槛相对基线的额外要求Recall1≥ 0.75—Recall5≥ 0.90≥ baselineRecall10≥ 0.95≥ baselineMRR≥ 0.85≥ baselineNDCG10≥ 0.90≥ baseline且比基线高出 ≥ 0.15No-match 准确率1.0000必须全对—此外除no_match之外的每个意图类别还要分别通过类别级门禁类别 Recall5 ≥ 0.80、类别 NDCG10 ≥ 0.75防止某一大类拖后腿时被总体均分掩盖。2.3 规模基线100 / 500 / 1000 工具的确定性扩展第二个测试committed_scale_baseline_covers_100_500_and_1000_tools同样位于 crates/loop/ironclaw_loop_host/src/tool_search.rs验证目录规模扩大时的排名稳定性保留全部已判定工具与意图然后在20 个合成命名空间asset_hub、billing_ops、document_vault、device_fleet等见源码常量SCALE_NAMESPACES上添加确定性干扰项distractors生成器使用固定种子SCALE_NAMESPACES/SCALE_ACTIONS/SCALE_NOUNS的长度取模偏移命名空间分布均匀最大与最小命名空间工具数之差 ≤ 1并且同一 catalog 构建两次必须字节级一致以证明定义确定性只提交确定性质量指标到基线文件tests/fixtures/tool_search_scale_baseline.json索引构建与查询耗时仅打印用于诊断不作为门禁——因为耗时随宿主机器与构建 profile 波动。仓库当前提交的规模基线数值如下工具数Recall1Recall5Recall10MRRNDCG10No-match1000.78650.93750.96610.94920.94261.00005000.78650.93750.95570.94920.94041.00001,0000.78650.93750.95570.94920.94041.0000值得注意的是合成新增项是刻意不判定unjudged的干扰项。它们只验证排名稳定性、暴露索引成本随目录增长的变化不代表 950 条人工判定的新用户意图。引入新的语义域时必须在基础语料中补充新判定的工具与意图而不是依赖合成干扰项。运行两条检索证据的命令--nocapture用于查看打印的诊断信息与最差查询cargo test -p ironclaw_loop_host committed_corpus_quality_gate_and_benchmark_report -- --nocapture cargo test -p ironclaw_loop_host committed_scale_baseline_covers_100_500_and_1000_tools -- --nocapture三、端到端基准五个披露模式臂3.1 五种披露形态端到端基准要求对同一任务集、同一 catalog 种子跑完全部五个「臂arm」全量广告 schemaFull advertised schemas把所有授权工具的完整 schema 都广告给模型——对照组当前紧凑协议tool_search→tool_describe→ 调用的现状方案有界完整签名Bounded complete signaturestool_search直接返回有界完整签名命名空间摘要 有界完整签名先给命名空间概览再按需取签名命名空间摘要 有界完整签名 已评审 profile pins在上一臂之上把经人工评审的关键工具 pin 进提示。五个臂都从同一个二进制选择通过环境变量REBORN_TOOL_DISCLOSURE切换。其解析实现在 crates/loop/ironclaw_loop_host/src/tool_disclosure_mode.rs臂REBORN_TOOL_DISCLOSURE取值含义全量广告 schemaoff控制臂广告每个授权 schema当前紧凑 搜索/描述/调用compact字母序预览 强制 describe 式紧凑搜索结果有界完整签名signatures有界完整签名 遗留字母序预览命名空间摘要 签名namespaces默认生产臂命名空间感知预览 有界签名无 pins命名空间摘要 签名 pinsbridgedopt-in命名空间感知预览 有界签名 已评审 pins源码中ToolDisclosureMode::from_raw的匹配规则值得注意取值不区分大小写COMPACT等价于compact未设置或空字符串时落到默认值namespaces——即渐进式披露默认开启未知值 fail closed 到off解析器会把garbage之类的非法值视为off并打 debug 日志保证回滚路径永远可达非 UTF-8 环境变量同样 fail closed 到off对应测试tool_disclosure_mode_non_unicode_env_fails_closed。各模式由is_enabled()、includes_complete_signatures()、includes_namespace_summaries()、includes_profile_pins()精确门控只有Signatures/Namespaces/Bridged含完整签名只有Namespaces/Bridged含命名空间摘要只有Bridged含 profile pins。3.2 Profile pins人工评审的「锚点工具」bridged臂的可选 pins 通过环境变量REBORN_TOOL_DISCLOSURE_PROFILE_PINS提供格式是以能力面 profile 为键、规范能力 ID 列表为值的 JSON 对象。契约给出的初始已评审基准映射为REBORN_TOOL_DISCLOSURE_PROFILE_PINS{interactive_tools:[gmail.list_messages,google-calendar.list_events,github.search_code],mission_tools:[github.search_issues_pull_requests,github.get_file_content],subagent_tools:[github.search_issues_pull_requests,github.get_file_content]}底层解析在 crates/loop/ironclaw_turn_runner/src/runtime.rs 的parse_tool_disclosure_profile_pins中实现其失败语义非常严格无效 JSON、任何非法 profile ID 或非法 capability ID都会在运行时启动阶段整体拒绝ProfilePinsNotUnicode、Profile、Capability错误解析原因被保留而非吞掉变量未设置时为空 pin 映射正常运行某个 pin 不在当前生效的授权面authorized surface内时该 pin无效果——即 pins 只收窄/突出绝不放宽授权。对应测试包括profile_pin_config_parses_typed_capability_ids、profile_pin_config_rejects_the_entire_map_when_any_id_is_invalid与profile_pin_environment_rejects_invalid_configuration_at_runtime_startup分别覆盖正常解析、整体拒绝与启动期拒绝。3.3 端到端基准的执行要求100 / 500 / 1000 工具目录必须保留相同的判定任务每个规模可以追加确定性干扰项但报告必须记录生成器版本与种子基准运行器应该在每个臂之间重启服务保持模型路由与 catalog 种子不变并且把每次观测选用的REBORN_TOOL_DISCLOSURE值记录下来每个模型/provider 配置至少跑1 次冷启动 3 次热启动重复报告给出中位数、最差情况、离散度spread与失败类别计数。四、端到端报告 schema逐任务观测、不藏失败4.1 观测对象字段每个观测对象记录一个 (臂, catalog 规模, 模型路由, 温度, 冷/热类别, 重复次数) 组合。契约给出了 schema_version 2 的完整示例{ schema_version: 2, catalog: { generator_version: tool-search-scale-v2, seed: 7405, tool_count: 500, namespace_count: 20 }, arm: signatures, model: { provider: provider-id, model: model-id, temperature: 0.0 }, run: { thermal_class: warm, repetition: 1 }, task: { id: email-to-calendar, completed: true, correct_tool_recalled: true, unauthorized_tool_leaks: 0 }, counts: { model_turns: 3, discovery_turns: 1, tool_calls: 3, tool_search_calls: 1, tool_describe_calls: 0 }, tokens: { input: 12000, cached_input: 8000, output: 600 }, latency_ms: { time_to_first_correct_tool_call: 900, end_to_end: 2400 }, cache: { tool_definition_signature_changes: null }, failure: null }字段语义要点arm永远是REBORN_TOOL_DISCLOSURE的规范选择值即off/compact/signatures/namespaces/bridged之一与观测一一对应cache.tool_definition_signature_changes在 provider 链路无法给出可信的签名变更计数时为null绝不估算failure存在时使用稳定类别如retrieval_miss、invalid_arguments、authorization_denied、approval_blocked、provider_error、task_incomplete聚合报告必须保留底层逐任务观测防止「一个宽泛的总分掩盖某项失败能力」隐私边界本地合成 fixture 校验任务拥有的参数字段但原始提示词、用户内容、凭据与工具参数不保留在聚合基准观测中。4.2 哪些指标由确定性 CI 提供哪些只由部署运行器提供契约明确划定了证据边界确定性仓库测试负责门禁——目录构造、检索质量、协议形态protocol shape、授权拟合authorization fitting、命名空间公平性namespace fairness、稳定序列化。但provider token 用量与网络/模型延迟不会被 JSON 字节数或本地测试耗时估算这两个字段只能由部署的冷/热运行器填充。这一分离设计的目的很直白防止「确定性 CI 代理」被包装成端到端模型证据。本地跑得快不能证明线上模型表现好这两类数据必须严格区分来源。五、必测场景与结果呈现5.1 七个必测场景精确工具名与规范能力 ID 查询别名与自然语言动作查询多个相关工具并存的歧义查询只出现在嵌套 schema 里的「仅参数词汇」查询相关但被拒绝的工具与允许的干扰项混在一起测授权过滤与排序的交互跨命名空间工作流典型如「找到一封邮件并创建日历事件」email-to-calendar即报告 schema 示例中的任务 id无匹配任务——正确行为是报告「不存在已授权的能力」而不是硬凑一个工具。5.2 结果呈现要求报告必须包含中位数、最差情况、离散度、失败类别计数启用了 provider 缓存的测量额外报告缓存输入 token 与工具定义签名变更次数缺失的 provider 缓存测量显式保持null。六、上线门禁Rollout gates改动放行的硬条件任何对渐进式披露交互的改动只有在以下条件全部成立时才能上线零泄露不得有任何未授权的命名空间、签名、provider 引用、排序结果或可调用目标泄露既有检索门禁不回退召回率、MRR、NDCG、no-match 门禁必须继续满足完整签名任务减少发现轮次signatures类任务降低discovery_turns同时不增加可归因于「缺 schema」的无效调用任何 catalog 规模下任务完成率不得实质性回退延迟加载稳定的 provider在整个发现与调用过程中保持字节一致的广告工具面byte-identical advertised tool surface。另外契约明确指出「有界编排bounded orchestration」尚不是一个臂——它要等到前面的交互改动上线、且本报告证明「模型往返仍是主导延迟来源」之后才需要单独的设计与 issue。也就是说这份契约本身是有版本节奏的先证明检索与披露形态再谈编排优化。七、在仓库中如何落地与验证阅读检索门禁实现crates/loop/ironclaw_loop_host/src/tool_search.rs语料校验、候选/基线对比、规模确定性、20 命名空间常量阅读披露模式解析与 fail-closed 语义crates/loop/ironclaw_loop_host/src/tool_disclosure_mode.rs阅读tool_search/tool_describe工具面与目录索引广告方式crates/loop/ironclaw_loop_host/src/tool_disclosure.rs含TOOL_SEARCH_NAME/TOOL_DESCRIBE_NAME常量与catalog_index_tool_search_description_for_mode的按模式广告逻辑阅读 profile pins 的启动期解析与错误类型crates/loop/ironclaw_turn_runner/src/runtime.rs语料与基线 fixturecrates/loop/ironclaw_loop_host/tests/fixtures/tool_search_relevance.json与tool_search_scale_baseline.json。运行建议先在本地跑第二章的两条检索测试确认门禁基线再按第三章的五个臂配置REBORN_TOOL_DISCLOSURE与可选REBORN_TOOL_DISCLOSURE_PROFILE_PINS最后按第四章 schema 逐任务记录观测并聚合成含失败类别统计的报告。务必遵守「臂间重启服务、模型路由与种子固定、记录每个观测的臂值」三条纪律才能得到可对比、可审计的端到端证据。赞分享人工智能AI 应用交互助手AI Agent【免费下载链接】ironclawIronClaw is an Agent OS focused on privacy, security and extensibility项目地址https://gitcode.com/gh_mirrors/iro/ironclaw点击查看免费下载相关推荐如何用 SparkMD5 计算大文件哈希值前端分片校验完整指南如何用 SparkMD5 计算大文件哈希值前端分片校验完整指南 太长不看SparkMD5 是一款面向 JavaScript 的快速 MD5 计算库支持普通人工智能AI 应用交互助手AI AgentIronClaw 渐进式工具披露协议Agent 如何按需发现并调用隐藏工具IronClaw 渐进式工具披露协议Agent 如何按需发现并调用隐藏工具 导读 IronClaw定位为以隐私、安全与可扩展性为核心的 Agent OS在人工智能AI 应用交互助手AI Agent浏览器资源捕获完整解决方案猫抓扩展架构解析与高级配置指南浏览器资源捕获完整解决方案猫抓扩展架构解析与高级配置指南 猫抓cat catch是一款功能强大的浏览器资源嗅探扩展专为技术开发者和内容创作者设计能够自人工智能AI 应用交互助手AI Agent上一篇如何通过awesome-selfhosted-cn构建完全自主的数字生活空间下一篇Tweepy容器编排使用Kubernetes管理Twitter数据服务创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表