Files
aiagent/docs/contributing.md
renjianbo ab1589921a fix: 修复35个安全与功能缺陷,补全知识进化/数字孪生/行为采集模块
## 安全修复 (12项)
- Webhook接口添加全局Token认证,过滤敏感请求头
- 修复JWT Base64 padding公式,防止签名验证绕过
- 数据库密码/飞书Token从源码移除,改为环境变量
- 工作流引擎添加路径遍历防护 (_resolve_safe_path)
- eval()添加模板长度上限检查
- 审批API添加认证依赖
- 前端v-html增强XSS转义,console.log仅开发模式输出
- 500错误不再暴露内部异常详情

## Agent运行时修复 (7项)
- 删除_inject_knowledge_context中未定义db变量的finally块
- 工具执行添加try/except保护,异常不崩溃Agent
- LLM重试计入budget计数器
- self_review异常时passed=False
- max_iterations截断标记success=False
- 工具参数JSON解析失败时记录警告日志
- run()开始时重置_llm_invocations计数器

## 配置与基础设施
- DEBUG默认False,SQL_ECHO独立配置项
- init_db()补全13个缺失模型导入
- 新增WEBHOOK_AUTH_TOKEN/SQL_ECHO配置项
- 新增.env.example模板文件

## 前端修复 (12项)
- 登录改用URLSearchParams替代FormData
- 401拦截器通过Pinia store统一清理状态
- SSE流超时从60s延长至300s
- final/error事件时清除streamTimeout
- localStorage聊天记录添加24h TTL
- safeParseArgCount替代模板中裸JSON.parse
- fetchUser 401时同时清除user对象

## 新增模块
- 知识进化: knowledge_extractor/retriever/tasks
- 数字孪生: shadow_executor/comparison模型
- 行为采集: behavior_middleware/collector/fingerprint_engine
- 代码审查: code_review_agent/document_review_agent
- 反馈学习: feedback_learner
- 瓶颈检测/优化引擎/成本估算/需求估算
- 速率限制器 (rate_limiter)
- Alembic迁移 015-020

## 文档
- 商业化落地计划
- 8篇docs文档 (架构/API/部署/开发/贡献等)
- Docker Compose生产配置

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-05-10 19:50:20 +08:00

175 lines
3.8 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🤝 贡献指南
> **Contributing Guide**
感谢您对天工智能体平台的兴趣我们欢迎所有形式的贡献——代码、文档、Bug 反馈、功能建议等。
---
## 一、行为准则
请保持友善和尊重的沟通氛围。我们致力于为所有贡献者提供一个开放、包容的环境。
---
## 二、如何贡献
### 🐛 报告 Bug
1. 前往 **[Issues](#)** 页面
2. 搜索是否已有相同问题报告
3. 创建新 Issue使用 Bug 报告模板
4. 请包含以下信息:
```
**标题**: [Bug] 简短描述问题
**描述**:
- 预期行为:
- 实际行为:
- 复现步骤:
1. ...
2. ...
- 环境信息:
- 浏览器/版本:
- 操作系统:
- API 版本:
- 截图/日志:
```
### ✨ 功能建议
1. 前往 **[Discussions](#)** 或 **Issues**
2. 使用功能建议模板
3. 清晰地描述你想要的功能及其使用场景
### 💻 提交代码
#### 第一步Fork & Clone
```bash
# Fork 项目到你的 GitHub 账号
# 然后 Clone 你的 Fork
git clone https://github.com/<your-username>/aiagent.git
cd aiagent
# 添加 upstream 远程仓库
git remote add upstream https://github.com/original/aiagent.git
```
#### 第二步:创建分支
```bash
# 从最新的 main 分支创建功能分支
git checkout main
git pull upstream main
git checkout -b feat/your-feature-name
```
分支命名规范:
| 分支类型 | 命名格式 | 示例 |
|:---------|:---------|:------|
| 新功能 | `feat/<描述>` | `feat/add-voice-input` |
| Bug 修复 | `fix/<描述>` | `fix/token-refresh-bug` |
| 文档 | `docs/<描述>` | `docs/update-api-ref` |
| 重构 | `refactor/<描述>` | `refactor/user-module` |
#### 第三步:开发
```bash
# 确保你的代码
# 1. 通过所有 lint 检查
cd frontend && pnpm lint
cd backend && flake8 app/
# 2. 通过所有测试
cd frontend && pnpm test
cd backend && pytest
# 3. 遵循代码规范(详见开发指南)
```
#### 第四步:提交 & 推送
```bash
# 使用 Conventional Commits 规范
git add .
git commit -m "feat(agent): 新增智能体知识库关联功能"
# 推送到你的 Fork
git push origin feat/your-feature-name
```
#### 第五步:发起 Pull Request
1. 前往原始仓库的 **Pull Requests** 页面
2. 点击 **New Pull Request**
3. 选择你的分支 → 目标分支 (`main`)
4. 填写 PR 模板:
```markdown
## 描述
简要描述本次变更内容
## 关联 Issue
Closes #123
## 变更类型
- [ ] 新功能 (feat)
- [ ] Bug 修复 (fix)
- [ ] 文档更新 (docs)
- [ ] 代码重构 (refactor)
- [ ] 测试 (test)
- [ ] 构建/工具链 (chore)
## 自测清单
- [ ] 代码已 lint 通过
- [ ] 测试已通过
- [ ] 本地运行验证通过
- [ ] 文档已更新(如需要)
```
---
## 三、Code Review 流程
| 阶段 | 说明 |
|:-----|:------|
| 1⃣ 提交 PR | PR 状态变为 `Open` |
| 2⃣ CI 检查 | 自动运行 Lint + 测试 |
| 3⃣ Review 分配 | 维护者分配 Reviewer |
| 4⃣ 代码审查 | Reviewer 逐行审查,提出修改建议 |
| 5⃣ 修改 | 提交者根据反馈修改代码 |
| 6⃣ 批准合并 | Review 通过后,由维护者合并到 `main` |
### Review 关注点
- 代码正确性:功能是否符合预期
- 代码风格:是否遵循项目规范
- 性能影响:是否有明显性能问题
- 安全漏洞:是否存在 SQL 注入 / XSS / 越权等隐患
- 测试覆盖:是否包含必要的测试用例
---
## 四、文档贡献
文档和代码同等重要!如果你发现文档有误或缺失,欢迎贡献:
- **API 文档**:位于 `docs/api-reference.md`
- **架构文档**:位于 `docs/architecture.md`
- **使用指南**:位于 `docs/quickstart.md`
- **代码注释**:修改代码时保持注释同步更新
---
## 五、开发环境
请参考 [开发指南](./development-guide.md) 搭建本地开发环境。
---
> 再次感谢您的贡献!🎉