为 AgentScope-Studio 做贡献
欢迎!🎉
感谢对 AgentScope-Studio 的关注!作为一个开源项目,我们热烈欢迎并鼓励来自社区的贡献。无论是修复 bug、添加新功能、改进文档,还是分享想法,你的贡献都能让 AgentScope-Studio 变得更好!
如何贡献
为了确保顺畅的协作并保持项目质量,请在贡献时遵循以下指南:
1. 检查现有开发计划和 Issue
在开始贡献之前,请查看我们的开发路线图:
- 查看 Projects 页面和带有
roadmap标签的 Issues,了解我们计划中的开发任务。如果存在相关 issue 且标记为未分配或开放状态:
- 请在 issue 下评论表达你对该任务的兴趣
- 这有助于避免重复工作,让我们能够协调开发进度
如果不存在相关 issue:
- 请创建一个新的 issue,描述你建议的更改或功能
- 我们的团队会及时回复并提供反馈和指导
- 这有助于我们维护项目路线图并协调社区工作
2. 提交信息格式
我们遵循 Conventional Commits 规范。这有助于生成更易读的提交历史,并支持自动生成变更日志。
格式:
<type>(<scope>): <subject>类型:
feat:新功能fix:bug 修复docs:仅文档更改style:不影响代码含义的更改(空格、格式化等)refactor:既不修复 bug 也不添加功能的代码更改perf:提升性能的代码更改test:添加缺失的测试或修正现有测试chore:构建过程或辅助工具和库的更改
示例:
bash
feat(models): add support for Claude-3 model
fix(agent): resolve memory leak in ReActAgent
docs(readme): update installation instructions
refactor(formatter): simplify message formatting logic
test(models): add unit tests for OpenAI integration3. 代码开发指南
a. 代码格式化
在提交代码之前,必须运行格式化命令以确保代码质量和一致性:
运行格式化工具:
bash
npm run format此命令将自动运行:
- Prettier:格式化代码风格
- ESLint:检查并修复代码质量问题
请确保在提交更改前运行此命令,以保证所有代码符合项目的风格规范。
b. 目录结构
在添加或修改文件时,请遵循以下目录结构:
packages/
client/src/
assets/ # 静态资源,如图片和图标
components/ # 前端 UI 的 React 组件
context/ # 用于状态管理和数据获取的 React Context 提供者
i18n/ # 国际化文件
pages/ # 不同路由的页面组件
utils/ # 工具函数和辅助功能
...
server/src/
dao/ # 数据访问对象,用于数据库交互
migrations/ # 数据库迁移脚本
models/ # 数据库模型
otel/ # OpenTelemetry 追踪设置
trpc/ # tRPC API 路由处理器
utils/ # 工具函数和辅助功能
database.ts # 数据库连接设置
index.ts # 服务器入口点
...c. 前端开发指南
在为前端(React/TypeScript)做贡献时,请遵循以下架构原则:
关注点分离:
通信和状态管理逻辑与 UI 组件分离。具体来说,数据获取和状态管理应由位于 packages/client/src/context/ 的 context 提供者处理,使 UI 组件专注于渲染和用户交互。
使用 Tailwind CSS 进行样式设计:
- 所有样式必须使用 Tailwind CSS 工具类
- 避免使用内联样式或单独的 CSS 文件进行组件特定的样式设计
tsx
// ✅ 推荐:使用 Tailwind 类
<div className="flex items-center justify-between p-4 bg-gray-100 rounded-lg shadow-md">
<h2 className="text-xl font-semibold text-gray-800">标题</h2>
<button className="px-4 py-2 text-white bg-blue-500 rounded hover:bg-blue-600">
操作
</button>
</div>
// ❌ 不推荐:内联样式
<div style={{ display: 'flex', padding: '16px' }}>...</div>d. 文档
- 为新功能更新相关文档
- 如果你的更改影响面向用户的功能,请更新 README.md
该做和不该做的事
✅ 该做:
- 从小做起:从小型、可管理的贡献开始
- 及早沟通:在实施重大更改之前先讨论
- 编写测试:确保你的代码经过充分测试
- 为代码编写文档:帮助他人理解你的贡献
- 遵循提交规范:使用规范化的提交信息
- 保持尊重:遵循我们的行为准则
- 提出问题:如果对某些事情不确定,尽管提问!
❌ 不该做:
- 不要突然提交大型 Pull Request:大型的、意外的 PR 难以审查,可能与项目目标不符。重大更改请务必先开启 issue 讨论
- 不要忽略 CI 失败:修复持续集成标记的任何问题
- 不要混杂关注点:保持 PR 专注于单一功能或修复
- 不要忘记更新测试:功能的更改应该在测试中体现
- 不要破坏现有 API:尽可能保持向后兼容性,或明确记录破坏性更改
- 不要添加不必要的依赖:保持核心库的轻量级
获取帮助
如果需要帮助或有疑问:
- 💬 开启 Discussion
- 🐛 通过 Issues 报告 bug
- 📧 通过钉钉或 Discord 联系维护者(链接见 README.md)
感谢为 AgentScope-Studio 做出贡献!你的努力帮助我们为整个社区打造更好的工具。🚀