微代理
OpenHands 使用专门的微代理来高效处理特定任务和上下文。这些微代理是小型、专注的组件,为特定场景提供专门的行为和知识。
概述
微代理在 openhands/agenthub/codeact_agent/micro/
目录下的 Markdown 文件中定义。每个微代理都配置有:
- 唯一的名称
- 代理类型(通常是 CodeActAgent)
- 触发代理的 关键词
- 具体的指令和功能
可用的微代理
GitHub 代理
文件:github.md
触发词:github
、git
GitHub 代理专门用于 GitHub API 交互和仓库管理。它:
- 可以访问用于 API 身份验证的
GITHUB_TOKEN
- 遵循严格的仓库交互准则
- 处理分支管理和拉取请求
- 使用 GitHub API 而不是网页浏览器交互
主要特点:
- 分支保护(防止直接推送到 main/master)
- 自动创建 PR
- Git 配置管理
- 以 API 为先的 GitHub 操作方式
NPM 代理
文件:npm.md
触发词:npm
专门处理 npm 包管理,特别关注:
- 非交互式 shell 操作
- 使用 Unix 'yes' 命令自动处理确认
- 包安装自动化
自定义微代理
你可以通过在微代理目录中添加新的 Markdown 文件来创建自己的微代理。每个文件应遵循以下结构:
---
name: agent_name
agent: CodeActAgent
triggers:
- trigger_word1
- trigger_word2
---
微代理的指令和功能...
最佳实践
使用微代理时:
- 使用适 当的触发词:确保你的命令包含相关的触发词以激活正确的微代理
- 遵循代理准则:每个代理都有特定的指令和限制 - 遵守这些准则以获得最佳结果
- API 优先方法:如果可用,使用 API 端点而不是网页界面
- 自动化友好:设计适合非交互式环境的命令
集成
微代理自动集成到 OpenHands 的工作流程中。它们:
- 监视传入的命令是否包含触发词
- 在检测到相关触发词时激活
- 应用其专门的知识和能力
- 遵循其特定的准则和限制
使用示例
# GitHub 代理示例
git checkout -b feature-branch
git commit -m "Add new feature"
git push origin feature-branch
# NPM 代理示例
yes | npm install package-name
有关特定代理的更多信息,请参阅微代理目录中的各个文档文件。
贡献微代理
要为 OpenHands 贡献新的微代理,请遵循以下准则:
1. 规划你的微代理
在创建微代理之前,请考虑:
- 它将解决什么具体问题或用例?
- 它应该具有什么独特的能力或知识?
- 什么触发词适合激活它?
- 它应该遵循什么约束或准则?