zeroclaw/src
Vernon Stinebaker a52446c637
feat(agent): add tool_filter_groups for per-turn MCP tool schema filtering (#3395)
* feat(agent): add tool_filter_groups for per-turn MCP tool schema filtering

Introduces per-turn MCP tool schema filtering to reduce token overhead when
many MCP tools are registered. Filtering is driven by a new config field
`agent.tool_filter_groups`, which is a list of named groups that each
specify tool glob patterns and an activation mode (`always` or `dynamic`).

Built-in (non-MCP) tools always pass through unchanged; the feature is fully
backward-compatible — an empty `tool_filter_groups` list (the default) leaves
all existing behaviour untouched.

Changes:
- src/config/schema.rs: add `ToolFilterGroupMode`, `ToolFilterGroup` types
  and `tool_filter_groups` field on `AgentConfig`
- src/config/mod.rs: re-export `ToolFilterGroup`, `ToolFilterGroupMode`
- src/agent/loop_.rs: add `glob_match()`, `filter_tool_specs_for_turn()`,
  `compute_excluded_mcp_tools()` helpers; wire call sites in both single-shot
  and interactive REPL modes; add unit tests for all three functions
- docs/reference/api/config-reference.md: document `tool_filter_groups`
  field and sub-table schema with example
- docs/i18n/el/config-reference.md: add Greek locale config-reference with
  `tool_filter_groups` section (2026-03-12 update)

* Remove accidentally committed worktree directories

---------

Co-authored-by: argenis de la rosa <theonlyhennygod@gmail.com>
2026-03-13 14:23:57 -04:00
..
agent feat(agent): add tool_filter_groups for per-turn MCP tool schema filtering (#3395) 2026-03-13 14:23:57 -04:00
approval fix(onboard): use provider-aware env var hint in quick setup next steps 2026-02-24 16:03:01 +08:00
auth feat: stabilize codex oauth and add provider model connectivity workflow 2026-02-24 16:03:01 +08:00
channels feat(tools/mcp): add MCP subsystem tools layer with multi-transport client (#3394) 2026-03-13 14:23:48 -04:00
config feat(tools/mcp): add MCP subsystem tools layer with multi-transport client (#3394) 2026-03-13 14:23:48 -04:00
cost fix(agent): parse MiniMax tool call formats for execution 2026-02-21 12:36:28 +08:00
cron fix(security): unify cron shell validation across API/CLI/scheduler (#3270) 2026-03-12 12:48:13 +00:00
daemon fix(daemon): handle SIGTERM for graceful shutdown (#3193) 2026-03-11 22:09:34 -04:00
doctor feat: stabilize codex oauth and add provider model connectivity workflow 2026-02-24 16:03:01 +08:00
gateway feat(providers): support custom HTTP headers for LLM API requests (#3423) 2026-03-13 14:15:42 -04:00
hardware Addressed clippy lint issues 2026-03-10 01:48:19 -04:00
health refactor(sync): migrate remaining std mutex usage to parking_lot 2026-02-18 00:45:26 +08:00
heartbeat fix: route heartbeat outputs to configured channels 2026-02-24 16:02:59 +08:00
hooks feat(hooks): add webhook-audit builtin hook (#3212) 2026-03-11 23:34:17 -04:00
integrations feat: Add Opencode-go provider (#3113) 2026-03-11 19:35:43 -04:00
memory fix(memory): resolve embedding api_key from embedding_provider env var, not default_provider key (#3184) 2026-03-11 15:39:54 -04:00
observability fix: gate prometheus and fix AtomicU64 for 32-bit targets (#3409) 2026-03-13 09:31:25 -04:00
onboard fix(daemon): expand tilde to home directory in file paths (#3424) 2026-03-13 14:22:57 -04:00
peripherals Addressed clippy lint issues 2026-03-10 01:48:19 -04:00
providers fix(llamacpp): send responses fallback history in llama.cpp-compatible item shape (#3391) 2026-03-13 14:21:17 -04:00
rag chore(lint): extend low-risk clippy cleanup batch 2026-02-17 16:40:58 +08:00
runtime docs(code): expand doc comments on security, observability, runtime, and peripheral traits 2026-02-19 13:19:46 -08:00
security fix(security): allow absolute paths within workspace when workspace_only is set (#2880) 2026-03-12 11:59:35 -04:00
service fix: resolve all compilation, test, and fmt errors on main 2026-02-21 12:09:06 +08:00
skillforge chore: Remove blocking read strings 2026-02-19 14:52:29 +08:00
skills Addressed clippy lint issues 2026-03-10 01:48:19 -04:00
sop fix(web): call doctor endpoint with authenticated POST 2026-02-24 16:02:59 +08:00
tools feat(tools/mcp): add MCP subsystem tools layer with multi-transport client (#3394) 2026-03-13 14:23:48 -04:00
tunnel fix: skip documentation URLs in cloudflare tunnel URL parser (#3416) 2026-03-13 09:40:02 -04:00
identity.rs test: cover deterministic HashMap ordering paths 2026-02-18 21:55:40 +08:00
lib.rs feat(channel): add channel send CLI command for outbound messages (#2907) 2026-03-12 10:18:04 -04:00
main.rs feat(channel): add channel send CLI command for outbound messages (#2907) 2026-03-12 10:18:04 -04:00
migration.rs readd tests, remove markdown files 2026-02-18 14:42:39 +08:00
multimodal.rs fix: resolve clippy warnings and rustfmt across codebase 2026-02-21 12:39:34 +08:00
util.rs fix(ci): restore containerized validation on main (#1096) 2026-02-20 07:48:58 -05:00