Skip to content

feat(acp): opt-in profile tool policy for full-capability hosts#70326

Open
joelbrilliant wants to merge 4 commits into
NousResearch:mainfrom
joelbrilliant:feat/acp-profile-tool-policy
Open

feat(acp): opt-in profile tool policy for full-capability hosts#70326
joelbrilliant wants to merge 4 commits into
NousResearch:mainfrom
joelbrilliant:feat/acp-profile-tool-policy

Conversation

@joelbrilliant

@joelbrilliant joelbrilliant commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Summary

Add acp.tool_policy so ACP hosts (Buzz, Zed, and other full-capability hosts) can use a Hermes profile's local CLI tool configuration instead of the coding-only hermes-acp default.

  • Default remains hermes-acp (editor-compatible, no behaviour change)
  • acp.tool_policy: profile resolves tools via the canonical _get_platform_tools path against platform_toolsets.cli (or explicit platform_toolsets.acp when set)
  • Same policy on session create and restore
  • Host-provided MCP servers cannot expand capability under profile policy
  • Dashboard: fold acp.tool_policy into the agent config tab
  • Docs: document the knob in the ACP user guide
  • No config version bump; deep-merge supplies the default

Why

Remote ACP hosts that attach an existing full Hermes profile need the profile's configured tools (skills, memory, kanban, cron, delegation, …), not the reduced coding toolset. This is generic ACP surface — no host-specific code.

Live dogfood: Buzz Desktop owner-only Rocky DM with full profile tools after setting acp.tool_policy: profile (companion Buzz PR #2633).

Relationship to other open PRs

PR Overlap Notes
This PR Opt-in policy switch: editor default vs full profile Small, backward compatible
#64045 Honor platform_toolsets.acp always Complementary; under tool_policy: profile we already honour explicit platform_toolsets.acp, else mirror CLI
#46832 Similar platform_toolsets idea Covered for profile mode here
#57421 Pass agent.disabled_toolsets Profile path uses _get_platform_tools, which already applies global disables
#69915 Docs-only Buzz host guide Orthogonal; this PR documents the config knob on the Hermes side

A deeper first-class product integration with Buzz (beyond ACP stdio) is still best owned by Nous Research if desired later. This PR unblocks full-capability hosts now without breaking editors.

Test plan

  • scripts/run_tests.sh tests/acp/test_tool_policy.py -q (13 passed)
  • Default / invalid policy still yields hermes-acp + profile MCP
  • Profile mode exposes configured CLI toolsets and honours disabled/default-off
  • Restored sessions re-apply profile policy
  • Host MCP ignored under profile mode
  • Buzz owner Rocky dogfood (full tools + multi-turn DM)

Add acp.tool_policy so ACP hosts can use a profile's local CLI tool
configuration instead of the coding-only hermes-acp default. Profile mode
resolves tools through the canonical platform resolver, applies the same
policy on session restore, and ignores host MCP expansion so the host cannot
broaden the selected profile.

Default remains hermes-acp for editor compatibility. No config version bump.
Some clean-env runners lack the optional ACP package; skip cleanly.
@alt-glitch alt-glitch added type/feature New feature or request P4 Best-effort: we will get to it when we get to it (no commitment) comp/acp Agent Communication Protocol adapter comp/cli CLI entry point, hermes_cli/, setup wizard area/config Config system, migrations, profiles sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades labels Jul 23, 2026
The new acp.tool_policy default was a single-field CONFIG_SCHEMA
category, which fails test_no_single_field_categories. Merge acp into
agent like other one-field sections (mcp, computer_use, onboarding).
Explain profile vs hermes-acp tool policy so remote ACP hosts (Buzz and
similar) can match interactive CLI tools without changing editor defaults.
@joelbrilliant

Copy link
Copy Markdown
Contributor Author

Review request

Opt-in only. Editors keep the coding hermes-acp default with zero behaviour change.

What this adds

acp:
  tool_policy: profile   # full profile tools for remote ACP hosts
  • Resolves via _get_platform_tools against platform_toolsets.cli (or explicit platform_toolsets.acp)
  • Host MCP cannot expand capability under profile policy
  • Dashboard field + ACP user-guide docs

Why
Full-capability ACP hosts (Buzz Desktop dogfood) need the same tools as interactive Hermes for a profile, not the reduced editor toolset.

Live proof
Buzz owner-only Rocky DM with skills/memory/browser/etc after this knob: block/buzz#2633

Related open PRs (complementary, not duplicates)

Happy to adjust naming or defaults if maintainers prefer a different config shape.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/config Config system, migrations, profiles comp/acp Agent Communication Protocol adapter comp/cli CLI entry point, hermes_cli/, setup wizard P4 Best-effort: we will get to it when we get to it (no commitment) sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades type/feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants