feat(delegate): Built-in specialized agent types (Explore, Bash)#2201
feat(delegate): Built-in specialized agent types (Explore, Bash)#2201VascoSch92 merged 13 commits intomainfrom
Conversation
API breakage checks (Griffe)Result: Failed Log excerpt (first 1000 characters) |
Coverage Report •
|
||||||||||||||||||||||||||||||||||||||||||||||||||
all-hands-bot
left a comment
There was a problem hiding this comment.
Taste Rating: 🟢 Good taste - Clean, straightforward implementation
Analysis: This is solid work. The agent definitions are well-structured with appropriate tool restrictions and clear system prompts. Tests are comprehensive without being excessive - they cover loading, registration, override behavior, and verify agents actually instantiate correctly.
No fundamental data structure issues, no complexity problems, no over-engineering. The code does exactly what it needs to do in a simple, maintainable way.
Verdict: ✅ LGTM - Ready to merge
|
@OpenHands This PR brings agents, active agents that should be possible to run normally and do their thing. I think unit testing with mocks is not great fit for them. Look at the unit tests and reduce those that test too few or unimportant things; instead, look if you can add these to the examples/ where there is an example with subagents. Fix |
|
I'm on it! enyst can track my progress at all-hands.dev |
- Simplify builtin agent tests (no mocks, focus on registry contracts) - Extend delegation example to demonstrate built-in explore/bash agents Co-authored-by: openhands <openhands@all-hands.dev>
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
Agent server REST API breakage checks (OpenAPI)Result: Passed |
This comment was marked as outdated.
This comment was marked as outdated.
2aa8b1a to
cf99f54
Compare
|
@enyst I completely understand the confusion following the comments here. After some discussion, we decided to move the builtin agents into the tools package. While it might seem slightly counterintuitive to house agents inside a 'tools' package, it makes sense for several reasons:
I updated the docs (OpenHands/docs#366) |
enyst
left a comment
There was a problem hiding this comment.
Thank you!
Good points, let's play.
Summary
The PR adds 2 built-in specialized agents:
ExploreandBash. (ref #2051 )Requirements
Explore, and Bash agent types are available out of the box
Yes. They are loaded automatically in each conversation and at the disposal of the main agent.
Each has an appropriate system prompt and tool subset
System prompts tailored to their function
Users can reference these types in delegation
Yes.
Built-in types can be overridden by user definitions
Yes. The user can define another agent with the same agent and this one will override the built-in one.
Checklist
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:fb8eee2-pythonRun
All tags pushed for this build
About Multi-Architecture Support
fb8eee2-python) is a multi-arch manifest supporting both amd64 and arm64fb8eee2-python-amd64) are also available if needed