Is there a machine-readable way to inspect the tools injected into a built agent? #1
Replies: 6 comments
|
Thanks for this — it's exactly the right question to ask at this boundary. That clear separation between framework and consumer-provided tools is something we think about a lot, and your framing of it as "runtime composition" is spot-on. Coincidentally, we had this in the works already: let tools: Vec<(String, String)> = agent.list_tools().await;
// → [("execute_command", "Execute a shell command..."), ...]The REPL also responds to It only returns name + description today — the per-tool origin/version metadata you described isn't there yet. That feels like the right next step, and it probably belongs on the |
|
Thanks — glad the framing landed, and congrats on shipping For the next layer, I’d start with the questions the metadata needs to answer:
A minimal record might include:
I would keep semver and content digest separate, since they answer different questions. One design question I’m less certain about: registration origin may belong to the builder/registry rather than the Keeping Happy to review a sketch once you decide where intrinsic versus composition metadata should live. |
|
Thanks for the detailed breakdown — the intrinsic-vs-composition distinction is exactly the right way to think about this. We shipped
let tools: Vec<ToolMetadata> = agent.list_tools().await;Here's what you see in the The default implementation automatically labels user-defined tools as On |
|
Thanks — this closes the boundary clearly. Tool-intrinsic metadata belongs to the implementation, while composition-time “who registered this” remains on the builder side. I’ll record v0.2.3 as an observable inventory surface, not as behavioral verification. No further ask from me.
李跃华
***@***.***
|
|
Thanks — v0.2.3 gives us a concrete validation boundary.
Would you be open to a small public evidence run against a frozen phi-agent/agent-base commit?
The exam would only assert:
1. a built agent returns ToolMetadata for its registered tools;
2. crate-backed tools expose origin + version + requirements;
3. a user-defined tool is explicitly marked custom / unknown rather than being attributed to the framework.
We would use the repository’s own preferred test command and publish the frozen commit, environment, test fixture, and result. This would not claim that ToolMetadata proves the tool works; only that runtime capability composition is inspectable and its uncertainty is explicit.
If that scope is useful, could you point me to the best existing test file/command and confirm whether public CI links may reference the result?
Best,
Yuehua
|
|
Thanks for the thoughtful analysis! You're right that the runtime composition model makes tool inventory especially important. To answer your first question: yes, We don't yet have dedicated tests for this, so a contribution would be very welcome. Feel free to open a PR — adding the assertions you described to |
Uh oh!
There was an error while loading. Please reload this page.
I’m looking at the boundary between
phi-agentand consumer-provided tools. The README is unusually clear that the framework provides infrastructure while tools come fromagent-works,phi-tools, or customToolimplementations.For teams evaluating an assembled agent, that makes the effective capability set depend on runtime composition rather than the
phi-agentpackage alone. A source-linked inventory of the registered tools—including origin, config/dependency requirements, and the build/version it was observed in—could make two agents built on the same framework easier to compare and reproduce.Does the builder or session API already expose a stable machine-readable inventory of injected tools? If not, where would you consider the authoritative boundary for generating one?
All reactions