symposium-dev/symposium

AI the Rust Way

解决的问题

AI 编码代理通常是通用的,不了解您在项目中使用的 Rust crate 的详细信息。如果没有额外的设置,它们会错过适用于您特定依赖项的重要约定、陷阱或工具。Symposium 通过自动将项目的依赖项与 crate 作者发布的指导链接起来解决了这个问题,因此您的代理可以在您工作的地方看到相关的技能和钩子。

工作原理

Symposium 使用 cargo metadata 读取 Rust 工作区的依赖图。然后,它根据该图评估每个插件和技能的“谓词”(例如 depends-on("serde") 或 path_exists(...) 等条件)。当谓词匹配时,Symposium 会将关联的扩展安装到您使用的 AI 代理中:

  • Skills: 一个 SKILL.md 文件,包含代理作为指导加载的上下文。
  • Hooks: 当代理执行操作(例如编写代码或运行命令)时运行的检查或转换。
  • MCP servers: 通过 Model Context Protocol 向代理公开的工具和资源。

您只需运行一次 cargo agents init 来告诉它您使用的代理(例如 Claude Code、Codex CLI、GitHub Copilot)。此后,cargo agents sync 会将插件与当前工作区进行匹配并更新已安装的技能。位于 ~/.symposium/config.toml 的单一配置文件会被转换为每个代理所期望的文件,因此同一项目中的不同人员可以使用不同的代理,而无需重复设置。

适用人群

  • Rust 开发人员:使用 AI 编码代理并希望在无需手动配置的情况下获得项目感知指导的人员。
  • Crate 作者:希望随其库一起发布技能、钩子和 MCP 服务器,以便这些库的用户自动获得版本匹配的帮助。
  • 团队:共享 Rust 工作区并需要在成员之间保持一致的代理设置,即使他们偏好不同的代理。

亮点

  • Agent-agnostic: 单一配置适用于 Antigravity CLI、Claude Code、Codex CLI、GitHub Copilot、Kiro、OpenCode 和 Goose(支持程度因代理而异)。
  • Dependency-driven matching: 仅当工作区中的 crate 与插件的谓词匹配时,才会安装扩展。
  • Auto-sync: 默认情况下,钩子会在每次调用时重新扫描依赖项,从而保持技能的最新状态。
  • Plugin sources: 插件可以来自内置注册表、git 存储库、本地目录,或通过 [[plugins]] 引用直接来自 crate。
  • Crate-author friendly: 在您的 crate 中添加 skills/ 目录或 Symposium.toml 即可分发指导。
  • Flexible configuration: auto-sync、hook-scope 和 auto-update 等选项可在 ~/.symposium/config.toml 中进行调整。
  • Open source: 在 MIT 或 Apache-2.0 许可下开源。

相关

  • 项目
  • 项目
  • 项目
  • 项目