公共微代理为每位 OpenHands 用户提供专门的上下文和能力,无论你使用的是哪个代码仓库。与针对特定仓库的微代理不同,公共微代理提供一种全球通用的专业知识和一致工作流程,为所有用户共享。
🌍 什么是公共微代理?
公共微代理为所有仓库提供专门知识和能力支持。它们主要分为两种形式:
- 知识微代理:
当你在对话中使用触发词时,这类微代理会自动激活。例如,当你提到 “git” 或 “docker” 时,对应的知识微代理会提供详细的指导和最佳实践建议。 - 任务微代理:
这类微代理需要用户主动调用,以引导你完成特定的工作流程。当需要分步支持——比如更新拉取请求描述或管理代码评审时,任务微代理可以确保过程的一致性和高效性。
这两种类型的微代理在语法和结构上与仓库专属微代理一致,均使用带有 YAML 前言的 Markdown 文件进行定义。它们存放在官方 OpenHands 仓库中,并遵循以下目录结构:
- 知识微代理存放在
microagents/knowledge/
目录中 - 任务微代理存放在
microagents/tasks/
目录中
🔧 公共微代理的工作原理
当你在 OpenHands 中发出指令或提问时,公共微代理会始终保持待命:
- 它们会监控输入的命令,检视其中的触发词,一旦使用了相关关键词,便会激活相应的微代理。
- 一旦激活,这些微代理会应用其专门的知识和能力,为你提供符合最佳实践的一致性指导。
- 它们严格遵循 YAML 前言中定义的具体指南和限制,确保其行为能够无缝融入你的工作流程。
与基于仓库配置加载的仓库专属微代理不同,公共微代理具有全球可用性。这意味着不论你正在处理哪个项目,所有用户都能从这一共享的专业知识库中获益。
📝 如何贡献公共微代理
公共微代理不仅是一个极为实用的工具,它们还是一个协作资源。OpenHands 鼓励开发者通过创建和共享自己的公共微代理来为这一库做出贡献。下面是如何参与:
1. 规划你的公共微代理
在开始编写之前,请考虑:
- 你的微代理将解决哪一个特定问题或用例?
- 它应当提供哪些独特能力或专业知识?
- 哪些触发词适合用来激活你的微代理?
- 该微代理应该遵循哪些限制或指导原则?
2. 创建文件
- 为你的 Markdown 文件选择一个描述性名称。
- 将文件放置于合适的目录中:
- 使用
microagents/knowledge/
目录来存放知识微代理。 - 使用
microagents/tasks/
目录来存放任务微代理。
- 使用
- 确保文件遵循文档中规定的正确语法和结构。
3. 测试微代理
- 使用各种提示语测试你的微代理。
- 验证触发词能否正确激活该微代理。
- 确认其提供的指导是否清晰、全面,并且与已有微代理不存在冲突。
4. 提交 Pull Request
- 提交包含你的新微代理文件的 Pull Request。
- 如有需要,更新相关文档。
- 提供该微代理用途和能力的明确描述。
有关详细说明,请参阅 OpenHands 仓库中的官方 CONTRIBUTING.md 文件。
🔍 公共微代理的最佳实践
在设计公共微代理时,请考虑以下几点以确保其有效且用户友好:
- 明确范围:
确保每个微代理聚焦于特定领域或任务。 - 明确指令:
提供清晰、毫不含糊的指导,避免产生混淆。 - 实用示例:
包含能够说明常见用例的实际示例。 - 安全至上:
加入必要的警告或约束,以防止滥用。 - 集成意识:
考虑微代理如何与 OpenHands 内的其他组件协同工作,确保无缝集成。
🌟 最后感言
公共微代理是 OpenHands 生态系统的核心组成部分。通过提供一个共享的、领域专属的专业知识与工作流程支持库,它们帮助保持一致的开发实践,并提升每位用户的整体辅助质量。无论你是一位希望简化任务流程的开发者,还是一位热衷于分享专业知识的贡献者,公共微代理都为优化软件开发流程提供了一种强大且协作的方式。
祝你编码愉快,愿公共微代理的集体智慧在你每一步前行中指引方向!