Skip to content

docs(tools): default custom tool creation to plugins#13138

Closed
helix4u wants to merge 1 commit into
NousResearch:mainfrom
helix4u:docs/plugin-first-tool-creation
Closed

docs(tools): default custom tool creation to plugins#13138
helix4u wants to merge 1 commit into
NousResearch:mainfrom
helix4u:docs/plugin-first-tool-creation

Conversation

@helix4u

@helix4u helix4u commented Apr 20, 2026

Copy link
Copy Markdown
Contributor

What does this PR do?

This PR steers custom tool creation toward Hermes plugins instead of direct edits to tools/ and toolsets.py.

Recent tool-creation attempts in IDE agents and support workflows kept taking the built-in/core route because the repo context and docs made adding-tools.md the most obvious path. That led people to modify Hermes itself for personal or project-local tools that should usually be plugins.

This change makes the common path explicit:

  • custom and local-only tools should usually be plugins
  • adding-tools.md is for built-in Hermes core tools
  • the plugin quickstart example should match the current ctx.register_tool(...) API

Related Issue

N/A

Type of Change

  • 🐛 Bug fix (non-breaking change that fixes an issue)
  • ✨ New feature (non-breaking change that adds functionality)
  • 🔒 Security fix
  • 📝 Documentation update
  • ✅ Tests (adding or improving test coverage)
  • ♻️ Refactor (no behavior change)
  • 🎯 New skill (bundled or hub)

Changes Made

  • updated AGENTS.md so repo context tells agents to default custom tool creation to plugins
  • added a built-in-core warning to website/docs/developer-guide/adding-tools.md
  • updated website/docs/user-guide/features/plugins.md to say this is the usual path for custom tools and fixed the quickstart example to use the current ctx.register_tool(name=..., toolset=..., schema=..., handler=...) signature
  • updated website/docs/developer-guide/contributing.md and website/docs/getting-started/learning-path.md so custom tool creation points to plugin docs first

How to Test

  1. Open the updated docs pages and verify the custom-tool path points to plugins before the built-in tool guide.
  2. Confirm adding-tools.md clearly says it is for built-in Hermes core tools only.
  3. Confirm the plugin quickstart example matches the current plugin API in hermes_cli/plugins.py.

Checklist

Code

  • I've read the Contributing Guide
  • My commit messages follow Conventional Commits (fix(scope):, feat(scope):, etc.)
  • I searched for existing PRs to make sure this isn't a duplicate
  • My PR contains only changes related to this fix/feature (no unrelated commits)
  • I've run pytest tests/ -q and all tests pass
  • I've added tests for my changes (required for bug fixes, strongly encouraged for features)
  • I've tested on my platform: Ubuntu 24.04 (docs/context review only)

Documentation & Housekeeping

  • I've updated relevant documentation (README, docs/, docstrings) — or N/A
  • I've updated cli-config.yaml.example if I added/changed config keys — or N/A
  • I've updated CONTRIBUTING.md or AGENTS.md if I changed architecture or workflows — or N/A
  • I've considered cross-platform impact (Windows, macOS) per the compatibility guide — or N/A
  • I've updated tool descriptions/schemas if I changed tool behavior — or N/A

Screenshots / Logs

N/A

@helix4u helix4u changed the title docs: default custom tool creation to plugins docs(tools): default custom tool creation to plugins Apr 20, 2026
@helix4u helix4u marked this pull request as ready for review April 20, 2026 18:32
@alt-glitch alt-glitch added type/docs Documentation improvements P3 Low — cosmetic, nice to have comp/plugins Plugin system and bundled plugins comp/tools Tool registry, model_tools, toolsets labels Apr 22, 2026
kshitijk4poor pushed a commit that referenced this pull request May 4, 2026
Steers custom tool creation toward the plugin route by default.
The adding-tools.md guide is now explicitly for built-in core Hermes
tools only.

Key fixes:
- Plugin quickstart: ctx.register_tool() now uses correct keyword-arg
  API (name=, toolset=, schema=, handler=) instead of broken 3-arg call
- Handler signature: (params, **kwargs) instead of (params)
- Handler return: json.dumps({...}) instead of plain string
- AGENTS.md: mentions plugin route before built-in tool instructions
- learning-path.md: plugins listed before core tool development
- contributing.md: separates plugin vs core tool paths

Based on PR #13138 by @helix4u.
@kshitijk4poor

Copy link
Copy Markdown
Collaborator

Merged via PR #19755. Your commit was cherry-picked onto current main with authorship preserved. The plugin quickstart fix is important — the old 3-arg register_tool() call would TypeError at runtime. The docs steering toward plugins-by-default is the right approach. Thanks @helix4u!

nickdlkk pushed a commit to nickdlkk/hermes-agent that referenced this pull request May 11, 2026
Steers custom tool creation toward the plugin route by default.
The adding-tools.md guide is now explicitly for built-in core Hermes
tools only.

Key fixes:
- Plugin quickstart: ctx.register_tool() now uses correct keyword-arg
  API (name=, toolset=, schema=, handler=) instead of broken 3-arg call
- Handler signature: (params, **kwargs) instead of (params)
- Handler return: json.dumps({...}) instead of plain string
- AGENTS.md: mentions plugin route before built-in tool instructions
- learning-path.md: plugins listed before core tool development
- contributing.md: separates plugin vs core tool paths

Based on PR NousResearch#13138 by @helix4u.
rmulligan pushed a commit to rmulligan/hermes-agent that referenced this pull request May 11, 2026
Steers custom tool creation toward the plugin route by default.
The adding-tools.md guide is now explicitly for built-in core Hermes
tools only.

Key fixes:
- Plugin quickstart: ctx.register_tool() now uses correct keyword-arg
  API (name=, toolset=, schema=, handler=) instead of broken 3-arg call
- Handler signature: (params, **kwargs) instead of (params)
- Handler return: json.dumps({...}) instead of plain string
- AGENTS.md: mentions plugin route before built-in tool instructions
- learning-path.md: plugins listed before core tool development
- contributing.md: separates plugin vs core tool paths

Based on PR NousResearch#13138 by @helix4u.
jsboige pushed a commit to jsboige/hermes-agent that referenced this pull request May 14, 2026
Steers custom tool creation toward the plugin route by default.
The adding-tools.md guide is now explicitly for built-in core Hermes
tools only.

Key fixes:
- Plugin quickstart: ctx.register_tool() now uses correct keyword-arg
  API (name=, toolset=, schema=, handler=) instead of broken 3-arg call
- Handler signature: (params, **kwargs) instead of (params)
- Handler return: json.dumps({...}) instead of plain string
- AGENTS.md: mentions plugin route before built-in tool instructions
- learning-path.md: plugins listed before core tool development
- contributing.md: separates plugin vs core tool paths

Based on PR NousResearch#13138 by @helix4u.
dannyJ848 pushed a commit to dannyJ848/hermes-agent that referenced this pull request May 17, 2026
Steers custom tool creation toward the plugin route by default.
The adding-tools.md guide is now explicitly for built-in core Hermes
tools only.

Key fixes:
- Plugin quickstart: ctx.register_tool() now uses correct keyword-arg
  API (name=, toolset=, schema=, handler=) instead of broken 3-arg call
- Handler signature: (params, **kwargs) instead of (params)
- Handler return: json.dumps({...}) instead of plain string
- AGENTS.md: mentions plugin route before built-in tool instructions
- learning-path.md: plugins listed before core tool development
- contributing.md: separates plugin vs core tool paths

Based on PR NousResearch#13138 by @helix4u.
gweeteve pushed a commit to gweeteve/hermes-agent that referenced this pull request Jun 2, 2026
Steers custom tool creation toward the plugin route by default.
The adding-tools.md guide is now explicitly for built-in core Hermes
tools only.

Key fixes:
- Plugin quickstart: ctx.register_tool() now uses correct keyword-arg
  API (name=, toolset=, schema=, handler=) instead of broken 3-arg call
- Handler signature: (params, **kwargs) instead of (params)
- Handler return: json.dumps({...}) instead of plain string
- AGENTS.md: mentions plugin route before built-in tool instructions
- learning-path.md: plugins listed before core tool development
- contributing.md: separates plugin vs core tool paths

Based on PR NousResearch#13138 by @helix4u.
Egavasyug pushed a commit to Egavasyug/hermes-agent that referenced this pull request Jun 10, 2026
Steers custom tool creation toward the plugin route by default.
The adding-tools.md guide is now explicitly for built-in core Hermes
tools only.

Key fixes:
- Plugin quickstart: ctx.register_tool() now uses correct keyword-arg
  API (name=, toolset=, schema=, handler=) instead of broken 3-arg call
- Handler signature: (params, **kwargs) instead of (params)
- Handler return: json.dumps({...}) instead of plain string
- AGENTS.md: mentions plugin route before built-in tool instructions
- learning-path.md: plugins listed before core tool development
- contributing.md: separates plugin vs core tool paths

Based on PR NousResearch#13138 by @helix4u.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/plugins Plugin system and bundled plugins comp/tools Tool registry, model_tools, toolsets P3 Low — cosmetic, nice to have type/docs Documentation improvements

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants