Skip to content

Conversation

@xingyaoww
Copy link
Contributor

Summary

This PR adds comprehensive documentation for using custom tools with remote agent servers in the OpenHands SDK.

Changes

New Guide

Added sdk/guides/custom-tools-remote-agent.md covering:

  • Overview: When and why to use custom tools with remote servers
  • Architecture: How dynamic tool registration works
  • Implementation Steps:
    1. Define custom tool with @register_tool
    2. Create Dockerfile that builds from source
    3. Copy tool modules and set PYTHONPATH
    4. Build custom image
    5. Use with SDK client
  • Common Patterns:
    • Structured data collection (QA reporting example)
    • External API integration
    • Custom validation logic
  • Troubleshooting: ImportError and registration issues

Updated Sidebar

  • Added new guide to sidebar navigation under "Guides"

Related PRs

Use Case

Addresses a common user need: collecting structured data from agent runs (e.g., bug reports from QA bots, test results, audit findings) where enforcing a specific schema is critical for downstream processing.

Co-authored-by: openhands openhands@all-hands.dev

@xingyaoww can click here to continue refining the PR

This guide documents how to use custom tools with a remote agent server
by building a custom Docker image that includes tool implementations.

Covers:
- Overview and use cases for custom tools with remote servers
- Architecture and workflow
- Step-by-step implementation guide
- Dynamic tool registration
- Production deployment best practices
- Troubleshooting common issues
- Real-world example (bug reporting bot)

References the complete example in the SDK repository:
examples/02_remote_agent_server/05_custom_tool/

Relates to: OpenHands/software-agent-sdk#1381

Co-authored-by: openhands <openhands@all-hands.dev>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants