-
Notifications
You must be signed in to change notification settings - Fork 73
Feat/tom agent integration #784
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
[Automatic Post]: It has been a while since there was any activity on this PR. @XuhuiZhou, are you still working on it? If so, please go ahead, if not then please request review, close it, or request that someone else follow up. |
1 similar comment
|
[Automatic Post]: It has been a while since there was any activity on this PR. @XuhuiZhou, are you still working on it? If so, please go ahead, if not then please request review, close it, or request that someone else follow up. |
…agent-sdk into feat/tom-agent-integration
|
@OpenHands please fix the failing actions on PR #784 at branch Please check tom-swe's dependency change (the changes to uv.lock in this PR) to inspect if it is some dependency change that breaks the binary build workflow |
|
I'm on it! xingyaoww can track my progress at all-hands.dev |
The tom-swe dependency includes heavy scientific packages (numpy, scipy, pandas) that are intentionally excluded from the PyInstaller binary build to keep the binary size manageable. Changes: - Made tom-swe imports lazy in executor.py to avoid import-time failures - Excluded tom_consult tools from PyInstaller hiddenimports collection - Explicitly excluded tom-swe and its heavy dependencies in spec file This allows the agent-server binary to build successfully while still supporting tom-swe features when the package is installed and used at runtime. Co-authored-by: openhands <openhands@all-hands.dev>
Summary: Fixed Failing GitHub Actions on PR #784 ✅I've successfully resolved both failing workflows on the Root Cause IdentifiedThe Changes Made1. Software Agent SDK (PR #784) - Commit a89ae578 ✅ Fixed Agent Server workflow:
✅ Fixed Check Documented Examples workflow:
2. Documentation (OpenHands/docs) - PR #104 Created comprehensive documentation at
Impact
Next StepsThe GitHub Actions should now pass on PR #784. Both PRs are cross-referenced for review. |
|
[Automatic Post]: It has been a while since there was any activity on this PR. @XuhuiZhou, are you still working on it? If so, please go ahead, if not then please request review, close it, or request that someone else follow up. |
1 similar comment
|
[Automatic Post]: It has been a while since there was any activity on this PR. @XuhuiZhou, are you still working on it? If so, please go ahead, if not then please request review, close it, or request that someone else follow up. |
|
[Automatic Post]: It has been a while since there was any activity on this PR. @XuhuiZhou, are you still working on it? If so, please go ahead, if not then please request review, close it, or request that someone else follow up. |
| # Register tools (default tools + Tom tools) | ||
| register_default_tools(enable_browser=False) # CLI mode, no browser | ||
| register_tool("TomConsultTool", TomConsultTool) | ||
| register_tool("SleeptimeComputeTool", SleeptimeComputeTool) | ||
|
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think we need to do these register_tool after #862
please make sure to update this pr to include the automatic "register_tool" for the tool definition
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe you should follow the convention here to name this file as definition.py and move content of action and observation both to this file?
|
@OpenHands please address all review comments on this PR Make sure you add a pre-commit hook similar to |
|
I'm on it! xingyaoww can track my progress at all-hands.dev |
…Tool registration pre-commit hook - Refactored tom_consult tool: - Renamed tool.py to definition.py following convention - Merged action.py and observation.py into definition.py - Added automatic tool registration at module level - Updated imports in __init__.py and executor.py - Updated 25_tom_agent.py example: - Removed manual register_tool calls (now auto-registered per PR #862) - Updated imports to use definition.py - Fixed delegate tool: - Added missing register_tool() call for DelegateTool - Imported register_tool from openhands.sdk.tool - Added Tool registration pre-commit hook: - Created scripts/check_tool_registration.py - Verifies all ToolDefinition subclasses are auto-registered on import - Supports special file patterns (e.g., browser_use toolsets) - Added check-tool-registration hook to .pre-commit-config.yaml - Hook automatically runs in GitHub CI via precommit.yml workflow Co-authored-by: openhands <openhands@all-hands.dev>
Summary of ChangesI've successfully addressed all review comments on PR #784. Here's what was completed: ✅ Checklist of Requirements
📋 Changes Made1. Refactored
2. Updated Example (
3. Fixed
4. Created Tool Registration Pre-commit Hook ✨
5. Dependency Cleanup
🧪 Testing✅ All pre-commit hooks passing:
🚀 StatusChanges have been committed and pushed to |
|
Looks like there are a few issues preventing this PR from being merged!
If you'd like me to help, just leave a comment, like Feel free to include any additional details that might help me get this PR into a better state. You can manage your notification settings |

Title
Add Tom agent integration: consult tool, preset, and example
Summary
tompreset to easily create an agent with the Tom consultation capability, and an example script.Changes
openhands/tools/tom_consult/withaction.py,observation.py,executor.py,tool.pyopenhands/tools/preset/tom.pywithget_tom_agentandget_tom_toolsexamples/01_standalone_sdk/25_tom_agent.pyopenhands/sdk/tool/tool.py: addStatefulToolExecutorinterface and executor typing refinementsopenhands/sdk/tool/__init__.py: export new symbolsopenhands/sdk/agent/agent.py: execute stateful tool executors withstateopenhands/sdk/io/local.py: addLocalFileStoreroot handling and sandboxingopenhands/tools/pyproject.tomladds dependency ontom-swe(GitHub source)Motivation
Usage
examples/01_standalone_sdk/25_tom_agent.pyDependencies and Compatibility
tom-swedependency:tom-swe @ git+https://github.com/all-hands-ai/ToM-SWE.git@mainTesting
get_tom_toolscustom_queryCommits
d54fcac fix tool params
0e0439f tom agent example
Added
TomConsultTool, presetget_tom_agent, and example25_tom_agent.py.Updated SDK to support stateful executors and safe local storage for Tom data.
Agent Server images for this PR
• GHCR package: https://github.com/OpenHands/agent-sdk/pkgs/container/agent-server
Variants & Base Images
eclipse-temurin:17-jdknikolaik/python-nodejs:python3.12-nodejs22golang:1.21-bookwormPull (multi-arch manifest)
# Each variant is a multi-arch manifest supporting both amd64 and arm64 docker pull ghcr.io/openhands/agent-server:5b02bdb-pythonRun
All tags pushed for this build
About Multi-Architecture Support
5b02bdb-python) is a multi-arch manifest supporting both amd64 and arm645b02bdb-python-amd64) are also available if needed