为 AgentSociety 2 贡献¶
感谢您对贡献 AgentSociety 2 的兴趣!
贡献方式¶
报告错误: 使用可重现的示例提交问题
建议功能: 分享您的改进想法
提交代码: 使用您的更改提交拉取请求
改进文档: 帮助使文档更清晰
分享示例: 向集合添加有用的示例
报告错误¶
报告错误时,请包括:
Python 版本
AgentSociety 2 版本
最小的可重现示例
预期行为与实际行为
任何错误消息或回溯
有关详情,请参阅错误报告模板。
建议功能¶
欢迎功能建议!请:
清楚地描述用例
解释为什么它有用
考虑它是否适合项目范围
愿意接受讨论
提交拉取请求¶
提交 PR 之前:
检查现有问题以获取相关讨论
Fork 仓库
为您的工作创建分支
使用清晰的提交消息进行更改
如需要,更新文档
提交拉取请求
PR 指南¶
保持更改专注和原子化
遵循现有代码风格
为新函数/类添加文档字符串
更新相关文档
确保 CI 通过
代码审查流程¶
所有 PR 都会经过代码审查:
维护者将审查您的更改
解决任何反馈或请求
批准后,PR 将被合并
大型更改可能需要多次迭代
开发设置¶
# Clone your fork
git clone https://github.com/your-username/agentsociety.git
cd agentsociety
# Install in development mode
uv sync
pip install -e "packages/agentsociety2[dev]"
# Install pre-commit hooks
cd packages/agentsociety2
pre-commit install
添加新功能¶
添加新功能时:
首先打开一个问题进行讨论
实现功能
更新文档
如有帮助,添加示例
示例结构¶
tests/
├── test_agent.py
├── test_env.py
└── test_storage.py
agentsociety2/
├── new_module/
│ ├── __init__.py
│ ├── core.py
│ └── utils.py
└── new_module/
├── __init__.py
└── implementation.py
文档标准¶
Python 文档字符串统一采用 Sphinx/reST 写法(:param:、:returns:、:raises:、:ivar: 等),与 autodoc 生成的 API 参考保持一致;新增或修改代码时请沿用同一约定。
def example_function(param1: str, param2: int) -> bool:
"""Brief description of the function.
Longer description with more details.
:param param1: Description of param1.
:param param2: Description of param2.
:returns: Description of return value.
:raises ValueError: If something goes wrong.
"""
pass
社区指南¶
尊重和建设性
欢迎新的贡献者
关注对社区最有利的事情
对其他社区成员表现出同理心
获取帮助¶
GitHub Issues: 用于错误和功能请求
GitHub Discussions: 用于问题和想法
Documentation: 首先查看文档
许可证¶
通过贡献 AgentSociety 2,您同意您的贡献将根据 Apache License 2.0 获得许可。