Skip to content
cccskills
FreePublished on GitHub

add-agent-tool

Add a tool function to the Medox agent. Use when creating a tool file, registering it in the API loop, and writing its test.

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md2.1 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Skill: Add a New Agent Tool

Steps

  1. Create the tool file at src/medox/agent/tools/tool_<name>.py:

    """One-line description of the data source and lookup strategy."""
    
    from medox.pipeline.config_pipeline import PipelineSettings
    
    def <tool_name>(<param>: str) -> str:
        """
        <What this tool does — written for the LLM, not a human developer.>
    
        Include:
        - What the parameter means and expected format
        - Example values or class names the LLM should pass
        - What the tool returns and how to interpret it
    
        Example: pass 'ANTIVITAMINES K' for warfarine, 'STATINES' for simvastatine.
        """
        settings = PipelineSettings()
        # ... implementation
    
  2. Register the tool in src/medox/api/agent.py (TOOLS) and in _dispatch_tool in src/medox/api/app.py.

  3. Docstring rules (critical — the LLM uses this to decide when/how to call the tool):

    • Written in English
    • Explain when to use this tool vs other tools
    • Give concrete input examples (especially for ANSM class names)
    • Describe the return format
  4. Write the test at tests/agent/test_tool_<name>.py:

    def test_<tool_name>_returns_expected():
        result = <tool_name>.invoke({"<param>": "<known_value>"})
        assert "<expected_substring>" in result
    
    def test_<tool_name>_handles_unknown():
        result = <tool_name>.invoke({"<param>": "nonexistent_xyz"})
        assert result  # returns graceful message, not exception
    
  5. Update .claude/rules/agent.md — add the tool to the tools table.

  6. Validate:

    uv run pytest tests/agent/test_tool_<name>.py -v
    uv run pytest tests/agent/ -v
    

Rules

  • Tool file name: tool_<name>.py — matches the @tool function name
  • One @tool per file
  • Never raise exceptions — return a descriptive string on error
  • Requires Docker stack running for PostgreSQL tools

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Add a new E2E test case to tests/e2e/prompts.yaml for LangSmith evaluation. Use when adding interaction pairs to test, covering new ANSM drug classes, or rebalancing eval coverage.

The English summary is being prepared. Showing the original description.

spideystreet/medox13Updated Oct 1, 2026

commit

Free

Create a git commit with Medox conventions (co-author, conventional type/scope). Invoke manually with /commit — do NOT trigger automatically.

The English summary is being prepared. Showing the original description.

spideystreet/medox13Updated Oct 1, 2026

Audit code changes on the current branch and update docs/ + .claude/rules/ to stay in sync. Run before /pr.

The English summary is being prepared. Showing the original description.

spideystreet/medox13Updated Oct 1, 2026

lint

Free

Run all project linters (ruff, mypy, sqlfluff) and report results. Invoke with /lint.

The English summary is being prepared. Showing the original description.

spideystreet/medox13Updated Oct 1, 2026

Add a new Dagster asset to the pipeline. Use when creating a Bronze, Silver, or Gold layer asset.

The English summary is being prepared. Showing the original description.

spideystreet/medox13Updated Oct 1, 2026

Create a new dbt Silver model with SQL + YAML contract. Use when adding a new Silver layer model from a raw source table.

The English summary is being prepared. Showing the original description.

spideystreet/medox13Updated Oct 1, 2026

See all skills by spideystreet

Report a problem with this skill