agentwerk 0.1.12

A minimal Rust crate that gives any application agentic capabilities.
Documentation
{
  "name": "tool_search_tool",
  "summary": [
    "Discover tools that were withheld from the initial system prompt to keep context small.",
    "Returns matching tool names, descriptions, and input schemas; once a tool surfaces here it becomes callable for the rest of the session."
  ],
  "constraints": [
    "Use this when a tool you expect is not in your initial definitions block — the framework defers some tools and exposes only their names until they are first searched for.",
    "Match is by name and keyword; pass terse queries like `pdf`, `database query`, `calendar event`.",
    "After this tool returns a match, the surfaced tool can be called directly by name on the next step."
  ],
  "anti_patterns": [
    "For a tool already listed in the initial definitions — call it directly.",
    "To search file contents — use `grep_tool`.",
    "To find files by name — use `glob_tool`."
  ],
  "cautions": [
    "IMPORTANT: a successful search adds the tool to the discovered set, growing the system-prompt context for subsequent steps. Search broadly once rather than narrowly many times."
  ],
  "output": [
    "Plain text, markdown-formatted. Header line `Found N tool(s) matching '<query>':`, followed by one section per match — `## <name>`, the tool's description, and a fenced JSON block for its input schema.",
    "`No tools found matching '<query>'.` when nothing matches."
  ],
  "read_only": true,
  "input_schema": {
    "type": "object",
    "properties": {
      "query": {
        "type": "string",
        "description": "Search terms — match against tool names and descriptions. Keywords work better than full sentences (e.g. `csv parse`, not `how do I parse a csv file`)."
      }
    },
    "required": ["query"]
  }
}