# 创建自定义扩展 随着0.4版本的新包结构推出,创建并发布自己的AutoGen生态扩展比以往更加简单。本文档详述了一些最佳实践,以确保您的扩展包能良好融入AutoGen生态系统。 ## 最佳实践 ### 命名规范 虽然对命名没有硬性要求,但建议在包名前添加`autogen-`前缀以便于搜索发现。 ### 通用接口 扩展应尽可能实现`autogen_core`包提供的接口,这将为用户带来更一致的体验。 #### AutoGen依赖管理 为确保扩展与其设计时对应的AutoGen版本兼容,建议在`pyproject.toml`的依赖项部分明确指定AutoGen版本约束: ```toml [project] # ... dependencies = [ "autogen-core>=0.4,<0.5" ] ``` ### 类型标注使用 AutoGen倡导使用类型提示来提升开发体验,建议扩展尽可能使用类型标注。 ## 扩展发现 为了让用户更容易找到您的扩展、示例代码或服务,您可以为GitHub仓库[添加主题标签](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/classifying-your-repository-with-topics): - 通用标签:[`autogen`](https://github.com/topics/autogen) - 扩展专用:[`autogen-extension`](https://github.com/topics/autogen-extension) - 示例代码专用:[`autogen-sample`](https://github.com/topics/autogen-sample) ## 0.2版本的变更 在AutoGen 0.2版本中,通常会将第三方扩展和代码示例合并到主代码库中。我们非常感谢所有为0.2版本生态系统贡献了notebook、模块和页面的用户。然而,我们正在逐步改变这一模式,以提供更大的灵活性并降低维护负担。 我们提供了`autogen-ext`包用于官方支持的一级扩展,但会进行选择性管理以控制维护工作量。如果您认为自己的扩展适合加入`autogen-ext`,请提交issue与我们讨论。否则,我们建议您将扩展发布为独立包,并遵循[发现机制](#discovery)部分的指南,方便用户查找您的扩展。