The OpenHands Software Agent SDK: A Composable and Extensible Foundation for Production Agents Article Swipe
YOU?
·
· 2025
· Open Access
·
· DOI: https://doi.org/10.48550/arxiv.2511.03690
Agents are now used widely in the process of software development, but building production-ready software engineering agents is a complex task. Deploying software agents effectively requires flexibility in implementation and experimentation, reliable and secure execution, and interfaces for users to interact with agents. In this paper, we present the OpenHands Software Agent SDK, a toolkit for implementing software development agents that satisfy these desiderata. This toolkit is a complete architectural redesign of the agent components of the popular OpenHands framework for software development agents, which has 64k+ GitHub stars. To achieve flexibility, we design a simple interface for implementing agents that requires only a few lines of code in the default case, but is easily extensible to more complex, full-featured agents with features such as custom tools, memory management, and more. For security and reliability, it delivers seamless local-to-remote execution portability, integrated REST/WebSocket services. For interaction with human users, it can connect directly to a variety of interfaces, such as visual workspaces (VS Code, VNC, browser), command-line interfaces, and APIs. Compared with existing SDKs from OpenAI, Claude, and Google, OpenHands uniquely integrates native sandboxed execution, lifecycle control, model-agnostic multi-LLM routing, and built-in security analysis. Empirical results on SWE-Bench Verified and GAIA benchmarks demonstrate strong performance. Put together, these elements allow the OpenHands Software Agent SDK to provide a practical foundation for prototyping, unlocking new classes of custom applications, and reliably deploying agents at scale.
Related Topics
- Type
- preprint
- Landing Page
- http://arxiv.org/abs/2511.03690
- https://arxiv.org/pdf/2511.03690
- OA Status
- green
- OpenAlex ID
- https://openalex.org/W4416020713
Raw OpenAlex JSON
- OpenAlex ID
-
https://openalex.org/W4416020713Canonical identifier for this work in OpenAlex
- DOI
-
https://doi.org/10.48550/arxiv.2511.03690Digital Object Identifier
- Title
-
The OpenHands Software Agent SDK: A Composable and Extensible Foundation for Production AgentsWork title
- Type
-
preprintOpenAlex work type
- Publication year
-
2025Year of publication
- Publication date
-
2025-11-05Full publication date if available
- Authors
-
Xingyao Wang, Simon Rosenberg, Juan Michelini, Calvin Smith, Hoang Tran, Engel Nyst, Raman Malhotra, Xuhui Zhou, Valerie Chen, Robert W. Brennan, Graham NeubigList of authors in order
- Landing page
-
https://arxiv.org/abs/2511.03690Publisher landing page
- PDF URL
-
https://arxiv.org/pdf/2511.03690Direct link to full text PDF
- Open access
-
YesWhether a free full text is available
- OA status
-
greenOpen access status per OpenAlex
- OA URL
-
https://arxiv.org/pdf/2511.03690Direct OA link when available
- Cited by
-
0Total citation count in OpenAlex
Full payload
| id | https://openalex.org/W4416020713 |
|---|---|
| doi | https://doi.org/10.48550/arxiv.2511.03690 |
| ids.doi | https://doi.org/10.48550/arxiv.2511.03690 |
| ids.openalex | https://openalex.org/W4416020713 |
| fwci | |
| type | preprint |
| title | The OpenHands Software Agent SDK: A Composable and Extensible Foundation for Production Agents |
| biblio.issue | |
| biblio.volume | |
| biblio.last_page | |
| biblio.first_page | |
| is_xpac | False |
| apc_list | |
| apc_paid | |
| language | |
| locations[0].id | pmh:oai:arXiv.org:2511.03690 |
| locations[0].is_oa | True |
| locations[0].source.id | https://openalex.org/S4306400194 |
| locations[0].source.issn | |
| locations[0].source.type | repository |
| locations[0].source.is_oa | True |
| locations[0].source.issn_l | |
| locations[0].source.is_core | False |
| locations[0].source.is_in_doaj | False |
| locations[0].source.display_name | arXiv (Cornell University) |
| locations[0].source.host_organization | https://openalex.org/I205783295 |
| locations[0].source.host_organization_name | Cornell University |
| locations[0].source.host_organization_lineage | https://openalex.org/I205783295 |
| locations[0].license | cc-by |
| locations[0].pdf_url | https://arxiv.org/pdf/2511.03690 |
| locations[0].version | submittedVersion |
| locations[0].raw_type | text |
| locations[0].license_id | https://openalex.org/licenses/cc-by |
| locations[0].is_accepted | False |
| locations[0].is_published | False |
| locations[0].raw_source_name | |
| locations[0].landing_page_url | http://arxiv.org/abs/2511.03690 |
| locations[1].id | doi:10.48550/arxiv.2511.03690 |
| locations[1].is_oa | True |
| locations[1].source.id | https://openalex.org/S4306400194 |
| locations[1].source.issn | |
| locations[1].source.type | repository |
| locations[1].source.is_oa | True |
| locations[1].source.issn_l | |
| locations[1].source.is_core | False |
| locations[1].source.is_in_doaj | False |
| locations[1].source.display_name | arXiv (Cornell University) |
| locations[1].source.host_organization | https://openalex.org/I205783295 |
| locations[1].source.host_organization_name | Cornell University |
| locations[1].source.host_organization_lineage | https://openalex.org/I205783295 |
| locations[1].license | cc-by |
| locations[1].pdf_url | |
| locations[1].version | |
| locations[1].raw_type | article |
| locations[1].license_id | https://openalex.org/licenses/cc-by |
| locations[1].is_accepted | False |
| locations[1].is_published | |
| locations[1].raw_source_name | |
| locations[1].landing_page_url | https://doi.org/10.48550/arxiv.2511.03690 |
| indexed_in | arxiv, datacite |
| authorships[0].author.id | https://openalex.org/A5023449213 |
| authorships[0].author.orcid | https://orcid.org/0000-0002-9502-4472 |
| authorships[0].author.display_name | Xingyao Wang |
| authorships[0].author_position | first |
| authorships[0].raw_author_name | Wang, Xingyao |
| authorships[0].is_corresponding | False |
| authorships[1].author.id | https://openalex.org/A5100029787 |
| authorships[1].author.orcid | |
| authorships[1].author.display_name | Simon Rosenberg |
| authorships[1].author_position | middle |
| authorships[1].raw_author_name | Rosenberg, Simon |
| authorships[1].is_corresponding | False |
| authorships[2].author.id | https://openalex.org/A5011641255 |
| authorships[2].author.orcid | |
| authorships[2].author.display_name | Juan Michelini |
| authorships[2].author_position | middle |
| authorships[2].raw_author_name | Michelini, Juan |
| authorships[2].is_corresponding | False |
| authorships[3].author.id | https://openalex.org/A5075808482 |
| authorships[3].author.orcid | |
| authorships[3].author.display_name | Calvin Smith |
| authorships[3].author_position | middle |
| authorships[3].raw_author_name | Smith, Calvin |
| authorships[3].is_corresponding | False |
| authorships[4].author.id | https://openalex.org/A5084119903 |
| authorships[4].author.orcid | https://orcid.org/0000-0002-7768-0863 |
| authorships[4].author.display_name | Hoang Tran |
| authorships[4].author_position | middle |
| authorships[4].raw_author_name | Tran, Hoang |
| authorships[4].is_corresponding | False |
| authorships[5].author.id | https://openalex.org/A5120302644 |
| authorships[5].author.orcid | |
| authorships[5].author.display_name | Engel Nyst |
| authorships[5].author_position | middle |
| authorships[5].raw_author_name | Nyst, Engel |
| authorships[5].is_corresponding | False |
| authorships[6].author.id | https://openalex.org/A5069106603 |
| authorships[6].author.orcid | |
| authorships[6].author.display_name | Raman Malhotra |
| authorships[6].author_position | middle |
| authorships[6].raw_author_name | Malhotra, Rohit |
| authorships[6].is_corresponding | False |
| authorships[7].author.id | https://openalex.org/A5101418027 |
| authorships[7].author.orcid | |
| authorships[7].author.display_name | Xuhui Zhou |
| authorships[7].author_position | middle |
| authorships[7].raw_author_name | Zhou, Xuhui |
| authorships[7].is_corresponding | False |
| authorships[8].author.id | https://openalex.org/A5088847857 |
| authorships[8].author.orcid | https://orcid.org/0009-0007-2783-0265 |
| authorships[8].author.display_name | Valerie Chen |
| authorships[8].author_position | middle |
| authorships[8].raw_author_name | Chen, Valerie |
| authorships[8].is_corresponding | False |
| authorships[9].author.id | https://openalex.org/A5065194762 |
| authorships[9].author.orcid | https://orcid.org/0000-0003-0468-393X |
| authorships[9].author.display_name | Robert W. Brennan |
| authorships[9].author_position | middle |
| authorships[9].raw_author_name | Brennan, Robert |
| authorships[9].is_corresponding | False |
| authorships[10].author.id | https://openalex.org/A5000692949 |
| authorships[10].author.orcid | |
| authorships[10].author.display_name | Graham Neubig |
| authorships[10].author_position | last |
| authorships[10].raw_author_name | Neubig, Graham |
| authorships[10].is_corresponding | False |
| has_content.pdf | True |
| has_content.grobid_xml | False |
| is_paratext | False |
| open_access.is_oa | True |
| open_access.oa_url | https://arxiv.org/pdf/2511.03690 |
| open_access.oa_status | green |
| open_access.any_repository_has_fulltext | False |
| created_date | 2025-11-07T00:00:00 |
| display_name | The OpenHands Software Agent SDK: A Composable and Extensible Foundation for Production Agents |
| has_fulltext | False |
| is_retracted | False |
| updated_date | 2025-11-09T23:09:16.995542 |
| primary_topic | |
| cited_by_count | 0 |
| locations_count | 2 |
| best_oa_location.id | pmh:oai:arXiv.org:2511.03690 |
| best_oa_location.is_oa | True |
| best_oa_location.source.id | https://openalex.org/S4306400194 |
| best_oa_location.source.issn | |
| best_oa_location.source.type | repository |
| best_oa_location.source.is_oa | True |
| best_oa_location.source.issn_l | |
| best_oa_location.source.is_core | False |
| best_oa_location.source.is_in_doaj | False |
| best_oa_location.source.display_name | arXiv (Cornell University) |
| best_oa_location.source.host_organization | https://openalex.org/I205783295 |
| best_oa_location.source.host_organization_name | Cornell University |
| best_oa_location.source.host_organization_lineage | https://openalex.org/I205783295 |
| best_oa_location.license | cc-by |
| best_oa_location.pdf_url | https://arxiv.org/pdf/2511.03690 |
| best_oa_location.version | submittedVersion |
| best_oa_location.raw_type | text |
| best_oa_location.license_id | https://openalex.org/licenses/cc-by |
| best_oa_location.is_accepted | False |
| best_oa_location.is_published | False |
| best_oa_location.raw_source_name | |
| best_oa_location.landing_page_url | http://arxiv.org/abs/2511.03690 |
| primary_location.id | pmh:oai:arXiv.org:2511.03690 |
| primary_location.is_oa | True |
| primary_location.source.id | https://openalex.org/S4306400194 |
| primary_location.source.issn | |
| primary_location.source.type | repository |
| primary_location.source.is_oa | True |
| primary_location.source.issn_l | |
| primary_location.source.is_core | False |
| primary_location.source.is_in_doaj | False |
| primary_location.source.display_name | arXiv (Cornell University) |
| primary_location.source.host_organization | https://openalex.org/I205783295 |
| primary_location.source.host_organization_name | Cornell University |
| primary_location.source.host_organization_lineage | https://openalex.org/I205783295 |
| primary_location.license | cc-by |
| primary_location.pdf_url | https://arxiv.org/pdf/2511.03690 |
| primary_location.version | submittedVersion |
| primary_location.raw_type | text |
| primary_location.license_id | https://openalex.org/licenses/cc-by |
| primary_location.is_accepted | False |
| primary_location.is_published | False |
| primary_location.raw_source_name | |
| primary_location.landing_page_url | http://arxiv.org/abs/2511.03690 |
| publication_date | 2025-11-05 |
| publication_year | 2025 |
| referenced_works_count | 0 |
| abstract_inverted_index.a | 18, 53, 67, 94, 103, 154, 217 |
| abstract_inverted_index.In | 43 |
| abstract_inverted_index.To | 89 |
| abstract_inverted_index.as | 124, 159 |
| abstract_inverted_index.at | 232 |
| abstract_inverted_index.in | 5, 27, 108 |
| abstract_inverted_index.is | 17, 66, 113 |
| abstract_inverted_index.it | 135, 149 |
| abstract_inverted_index.of | 8, 71, 75, 106, 156, 225 |
| abstract_inverted_index.on | 196 |
| abstract_inverted_index.to | 39, 116, 153, 215 |
| abstract_inverted_index.we | 46, 92 |
| abstract_inverted_index.(VS | 162 |
| abstract_inverted_index.For | 131, 144 |
| abstract_inverted_index.Put | 205 |
| abstract_inverted_index.SDK | 214 |
| abstract_inverted_index.and | 29, 32, 35, 129, 133, 168, 177, 190, 199, 228 |
| abstract_inverted_index.are | 1 |
| abstract_inverted_index.but | 11, 112 |
| abstract_inverted_index.can | 150 |
| abstract_inverted_index.few | 104 |
| abstract_inverted_index.for | 37, 55, 80, 97, 220 |
| abstract_inverted_index.has | 85 |
| abstract_inverted_index.new | 223 |
| abstract_inverted_index.now | 2 |
| abstract_inverted_index.the | 6, 48, 72, 76, 109, 210 |
| abstract_inverted_index.64k+ | 86 |
| abstract_inverted_index.GAIA | 200 |
| abstract_inverted_index.SDK, | 52 |
| abstract_inverted_index.SDKs | 173 |
| abstract_inverted_index.This | 64 |
| abstract_inverted_index.VNC, | 164 |
| abstract_inverted_index.code | 107 |
| abstract_inverted_index.from | 174 |
| abstract_inverted_index.more | 117 |
| abstract_inverted_index.only | 102 |
| abstract_inverted_index.such | 123, 158 |
| abstract_inverted_index.that | 60, 100 |
| abstract_inverted_index.this | 44 |
| abstract_inverted_index.used | 3 |
| abstract_inverted_index.with | 41, 121, 146, 171 |
| abstract_inverted_index.APIs. | 169 |
| abstract_inverted_index.Agent | 51, 213 |
| abstract_inverted_index.Code, | 163 |
| abstract_inverted_index.agent | 73 |
| abstract_inverted_index.allow | 209 |
| abstract_inverted_index.case, | 111 |
| abstract_inverted_index.human | 147 |
| abstract_inverted_index.lines | 105 |
| abstract_inverted_index.more. | 130 |
| abstract_inverted_index.task. | 20 |
| abstract_inverted_index.these | 62, 207 |
| abstract_inverted_index.users | 38 |
| abstract_inverted_index.which | 84 |
| abstract_inverted_index.Agents | 0 |
| abstract_inverted_index.GitHub | 87 |
| abstract_inverted_index.agents | 16, 23, 59, 99, 120, 231 |
| abstract_inverted_index.custom | 125, 226 |
| abstract_inverted_index.design | 93 |
| abstract_inverted_index.easily | 114 |
| abstract_inverted_index.memory | 127 |
| abstract_inverted_index.native | 182 |
| abstract_inverted_index.paper, | 45 |
| abstract_inverted_index.scale. | 233 |
| abstract_inverted_index.secure | 33 |
| abstract_inverted_index.simple | 95 |
| abstract_inverted_index.stars. | 88 |
| abstract_inverted_index.strong | 203 |
| abstract_inverted_index.tools, | 126 |
| abstract_inverted_index.users, | 148 |
| abstract_inverted_index.visual | 160 |
| abstract_inverted_index.widely | 4 |
| abstract_inverted_index.Claude, | 176 |
| abstract_inverted_index.Google, | 178 |
| abstract_inverted_index.OpenAI, | 175 |
| abstract_inverted_index.achieve | 90 |
| abstract_inverted_index.agents, | 83 |
| abstract_inverted_index.agents. | 42 |
| abstract_inverted_index.classes | 224 |
| abstract_inverted_index.complex | 19 |
| abstract_inverted_index.connect | 151 |
| abstract_inverted_index.default | 110 |
| abstract_inverted_index.popular | 77 |
| abstract_inverted_index.present | 47 |
| abstract_inverted_index.process | 7 |
| abstract_inverted_index.provide | 216 |
| abstract_inverted_index.results | 195 |
| abstract_inverted_index.satisfy | 61 |
| abstract_inverted_index.toolkit | 54, 65 |
| abstract_inverted_index.variety | 155 |
| abstract_inverted_index.Compared | 170 |
| abstract_inverted_index.Software | 50, 212 |
| abstract_inverted_index.Verified | 198 |
| abstract_inverted_index.building | 12 |
| abstract_inverted_index.built-in | 191 |
| abstract_inverted_index.complete | 68 |
| abstract_inverted_index.complex, | 118 |
| abstract_inverted_index.control, | 186 |
| abstract_inverted_index.delivers | 136 |
| abstract_inverted_index.directly | 152 |
| abstract_inverted_index.elements | 208 |
| abstract_inverted_index.existing | 172 |
| abstract_inverted_index.features | 122 |
| abstract_inverted_index.interact | 40 |
| abstract_inverted_index.redesign | 70 |
| abstract_inverted_index.reliable | 31 |
| abstract_inverted_index.reliably | 229 |
| abstract_inverted_index.requires | 25, 101 |
| abstract_inverted_index.routing, | 189 |
| abstract_inverted_index.seamless | 137 |
| abstract_inverted_index.security | 132, 192 |
| abstract_inverted_index.software | 9, 14, 22, 57, 81 |
| abstract_inverted_index.uniquely | 180 |
| abstract_inverted_index.Deploying | 21 |
| abstract_inverted_index.Empirical | 194 |
| abstract_inverted_index.OpenHands | 49, 78, 179, 211 |
| abstract_inverted_index.SWE-Bench | 197 |
| abstract_inverted_index.analysis. | 193 |
| abstract_inverted_index.browser), | 165 |
| abstract_inverted_index.deploying | 230 |
| abstract_inverted_index.execution | 139 |
| abstract_inverted_index.framework | 79 |
| abstract_inverted_index.interface | 96 |
| abstract_inverted_index.lifecycle | 185 |
| abstract_inverted_index.multi-LLM | 188 |
| abstract_inverted_index.practical | 218 |
| abstract_inverted_index.sandboxed | 183 |
| abstract_inverted_index.services. | 143 |
| abstract_inverted_index.together, | 206 |
| abstract_inverted_index.unlocking | 222 |
| abstract_inverted_index.benchmarks | 201 |
| abstract_inverted_index.components | 74 |
| abstract_inverted_index.execution, | 34, 184 |
| abstract_inverted_index.extensible | 115 |
| abstract_inverted_index.foundation | 219 |
| abstract_inverted_index.integrated | 141 |
| abstract_inverted_index.integrates | 181 |
| abstract_inverted_index.interfaces | 36 |
| abstract_inverted_index.workspaces | 161 |
| abstract_inverted_index.demonstrate | 202 |
| abstract_inverted_index.desiderata. | 63 |
| abstract_inverted_index.development | 58, 82 |
| abstract_inverted_index.effectively | 24 |
| abstract_inverted_index.engineering | 15 |
| abstract_inverted_index.flexibility | 26 |
| abstract_inverted_index.interaction | 145 |
| abstract_inverted_index.interfaces, | 157, 167 |
| abstract_inverted_index.management, | 128 |
| abstract_inverted_index.command-line | 166 |
| abstract_inverted_index.development, | 10 |
| abstract_inverted_index.flexibility, | 91 |
| abstract_inverted_index.implementing | 56, 98 |
| abstract_inverted_index.performance. | 204 |
| abstract_inverted_index.portability, | 140 |
| abstract_inverted_index.prototyping, | 221 |
| abstract_inverted_index.reliability, | 134 |
| abstract_inverted_index.applications, | 227 |
| abstract_inverted_index.architectural | 69 |
| abstract_inverted_index.full-featured | 119 |
| abstract_inverted_index.REST/WebSocket | 142 |
| abstract_inverted_index.implementation | 28 |
| abstract_inverted_index.model-agnostic | 187 |
| abstract_inverted_index.local-to-remote | 138 |
| abstract_inverted_index.experimentation, | 30 |
| abstract_inverted_index.production-ready | 13 |
| cited_by_percentile_year | |
| countries_distinct_count | 0 |
| institutions_distinct_count | 11 |
| citation_normalized_percentile |