Draft tool trust verifier
Skill AnthonyAlcaraz/agentic-graph-rag-skills/skills/tool-orchestration/draft-tool-trust-verifier
Establish trust in a tool by verification, not by its self-description. Flags marketing-gamed tool descriptions ("industry-leading", "trusted by Fortune 500"), requires structured testable capabilities instead of free-text claims, tracks a performance-based trust score (neutral start, successes up, failures and slow calls down), and runs the DRAFT loop — gather boundary-probing experience, learn the gap between documentation and reality, rewrite an AI-optimized spec — until the doc converges with actual behavior. Use when a tool registry ingests third-party or provider-authored descriptions that may be optimized for discovery over accuracy. NOT for tools you authored and fully control, NOT a functional test framework (it discovers doc-vs-reality gaps, it does not assert business correctness), NOT a security scanner.From its SKILL.md
npx -y skills add AnthonyAlcaraz/agentic-graph-rag-skills --skill draft-tool-trust-verifierAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 5 stars5 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
10.4 KB, ~2.1k tokens by cl100k_base, as published. Nobody here has run it
DRAFT Tool-Trust Verifier
Overview
Tool discovery that depends on descriptions has a failure mode the chapter names directly: providers optimize descriptions for DISCOVERY, not accuracy. "Most effective solution." "Trusted by Fortune 500." "Industry-leading performance." When every tool claims to be the best, keyword-gamed descriptions defeat the retrieval algorithms — surfacing the best marketers rather than the best tools. At scale (thousands of tools) you cannot manually verify claims.
The chapter's answer is verification-based trust, on two mechanisms:
- Structured, verifiable capabilities. A tool does not get to claim it
"analyzes customer sentiment with unparalleled accuracy." It declares the
capability
sentiment_analysiswith specific input and output types that can be tested. - Performance-based trust scores. Every tool begins neutral. Successful executions raise trust; failures, high latency, or degradations lower it. The orchestrator learns to prioritize tools that are consistently reliable.
Baidu's DRAFT (Documentation Refinement through Automated Feedback and Testing) operationalizes this as a continuous learning loop that mirrors how a developer learns a new API:
- Experience Gathering — an explorer probes tool boundaries, seeks edge cases, maps failure modes, and enforces diversity to avoid redundant tests.
- Learning from Experience — analyze the gap between documentation and reality (claims "any text input" but fails on Unicode; undocumented payload-size latency). Systematic discovery of true capabilities, not error logging.
- Documentation Rewriting — generate an AI-optimized spec reflecting the discovered reality: parameter types, ranges, error conditions, real performance. Iterate until the doc converges with actual behavior.
DRAFT sidesteps the trust problem: why worry about providers gaming descriptions when your system discovers the truth anyway? This parallels Writer's gateway, which rewrites descriptions preemptively (before deployment) rather than iteratively (after observing failures) — both treat tool descriptions as an active interface, not static metadata.
When to Use
- A tool registry ingests provider-authored or third-party descriptions
- Retrieval keeps surfacing "best-marketed" tools that then underperform
- You want a trust score to rank functionally-equivalent tools by reliability
- You are onboarding a new tool and its documentation is human-friendly prose, not an agent-parseable spec
Phrases that invoke this skill: "verify what this tool does", "the tool description is gamed", "trust score", "DRAFT", "rewrite the tool docs", "doc vs reality".
When NOT to Use
- Tools you authored and fully control — you already know the true behavior; write the structured spec directly.
- As a functional test framework. DRAFT discovers doc-vs-reality gaps (constraints, error conditions, performance); it does not assert business correctness. Keep your unit/integration tests.
- As a security scanner. It measures capability and reliability, not
vulnerability. Pair with
agent-shield/ SkillSpector for security. - When there is no gap to find — a tool whose docs already match its behavior converges immediately; DRAFT adds nothing.
Process
| Step | Input | Action | Output | Verification |
|---|---|---|---|---|
| 1 | Tool JSON (claimed_description + declared_capabilities + behavior) | lib.load_tool_under_test(path) | Tool dict | Has claimed_description and a behavior model |
| 2 | Tool dict | lib.verify_claims(tool) | Marketing-phrase flags + structured-capability count | Gamed phrases flagged; verifiable True only if every capability has name+input_types+output_types |
| 3 | Execution history | lib.TrustScore().record(success, latency_ms) per call | Evolving trust score | Neutral 0.5 start; successes up, failures + slow calls down |
| 4 | Tool + probe set | lib.gather_experience(tool, probes) | Observations (success/latency/error) | Duplicate probes deduped (diversity enforced) |
| 5 | Tool + observations | lib.learn_from_experience(tool, obs) | Doc-vs-reality gap report | Discovered error conditions + gap_over_promises_any_text |
| 6 | Tool + learning | lib.rewrite_documentation(tool, learning) | AI-optimized refined spec | Refined spec lists real constraints + performance, drops marketing |
| 7 | Tool + probes | lib.run_draft(tool, probes) | Full gather→learn→rewrite result | Refined spec's error_conditions match discovered failures |
Rationalizations
| Agent rationalization | Documented rebuttal |
|---|---|
| "The tool description says it handles any text input — trust it." | DRAFT's worked example is exactly this: a tool claims "any text input" but fails on Unicode. Descriptions are gamed for discovery; probe the boundary before trusting the claim. |
| "Free-text capability descriptions are fine." | The chapter requires structured, enumerable capabilities with input/output types precisely because free text cannot be tested. verify_claims flags a capability with null input_types as unverifiable. |
| "One trust score for the tool is enough — reliability is fixed." | Trust is performance-based and evolves: successes up, failures and slow calls down. A tool that degrades (technical debt, maintenance windows) must lose trust over time, not keep a stale score. |
| "Just log the errors when the tool fails." | Learning-from-experience is systematic discovery of TRUE capabilities, not error logging. It converts observed failures into refined constraints (max length, ASCII-only) that reshape future selection. |
| "Rewriting docs is the provider's job." | Raw provider docs are written for humans and cause tool-calling errors when used as-is (Writer's finding). The rewrite — preemptive or iterative — is what makes the description an accurate agent interface. |
Red Flags
- A capability with
input_types: nullmarked verifiable. The structured- capability check is broken; unverifiable free-text is passing. - DRAFT reports
converged: trueon a tool with known undocumented limits. The probe set is not diverse enough — it never hit the boundary. Add edge-case probes (empty, oversized, non-ASCII). - Trust score never moves.
recordis not being called on real execution outcomes; the score is decorative. - Refined spec still contains marketing language. The rewrite copied the claim instead of assembling from observations.
- CLI
--helpexits non-zero. SKILL.md / CLI mismatch; multi-harness invariant broken.
Non-Negotiable Verification
-
Run the benchmark battery.
python cli.py benchmarkConfirm marketing phrases are flagged, capabilities are NOT fully verifiable (the sample's second capability has null input_types), the three undocumented constraints are discovered, and a flaky-tool history drives trust below 0.5.
-
Prove the gap is discovered, not assumed.
python cli.py learnThe claim says "any text input"; the learning report must show
gap_over_promises_any_text: Truewith the discovered error conditions. -
Prove the refined spec drops marketing.
python cli.py rewriteThe refined description states real constraints and performance; it contains none of the flagged marketing phrases.
-
JSON round-trips.
python cli.py draft --json | python -c "import json,sys; json.load(sys.stdin)"
Security Posture
- Prompt injection. A gamed description can embed instructions. This skill
never trusts the description for behavior — it probes the tool. The
# TODO(production):seam inTrustScore.recordmarks where SLO-weighted penalties and observation decay go; the explorer's probe issuance is the production seam where real (sandboxed) calls replace_simulate. - Data exfiltration. No network calls in
lib.py; behavior is simulated from declarative rules. In production, run the explorer's probes in a sandbox so boundary-probing cannot trigger real side effects. - Privilege escalation. DRAFT probes should be read-only / idempotent —
boundary exploration must not invoke destructive tool operations. Gate probe
generation behind the same sensitive-action policy as
information-flow-control-gate.
Composition
- Feeds
skill-quality-evaluatorand retrieval: the DRAFT-refined description improvessearchaccuracy, and the trust score is a ranking signal for functionally-equivalent tools. - Feeds
hierarchical-orchestration-routerfunctional clustering — DRAFT- refined representations are what the clusterer embeds ("embed tools based on what they do, not what they claim"). - Pairs with
information-flow-control-gate— DRAFT learns what a tool does; IFC governs what data may flow into it. - Parallels the MCP Gateway's preemptive description rewrite (Palmyra X5); DRAFT is the iterative, post-observation form of the same insight.
Source Attribution
Distilled from Agentic GraphRAG (O'Reilly), Chapter 6 — Tool Orchestration, sections "The Trust Problem: When Tools Game the System", "Verification-based trust", and "DRAFT: Learning what tools actually do". Named references:
- Baidu AI Search Paradigm — DRAFT (Documentation Refinement through Automated Feedback and Testing); three-phase loop
- Writer enterprise MCP gateway — preemptive description rewrite (Palmyra X5), the same insight applied before deployment rather than after
What ships with it: 3 files
21.5 KB alongside SKILL.md, 2 of them executable
- cli.pyruns8.9 KB
- lib.pyruns10.8 KB
- sample-tool-under-test.json1.8 KB