鏇存柊鏂囨。
This commit is contained in:
62
.obsidian/workspace.json
vendored
62
.obsidian/workspace.json
vendored
@@ -27,12 +27,12 @@
|
||||
"state": {
|
||||
"type": "markdown",
|
||||
"state": {
|
||||
"file": "docs/技术面试问题回答.md",
|
||||
"file": "docs/Obsidian笔记体系/Daily/2026-01-20.md",
|
||||
"mode": "source",
|
||||
"source": false
|
||||
},
|
||||
"icon": "lucide-file",
|
||||
"title": "技术面试问题回答"
|
||||
"title": "2026-01-20"
|
||||
}
|
||||
}
|
||||
],
|
||||
@@ -68,7 +68,7 @@
|
||||
"state": {
|
||||
"type": "search",
|
||||
"state": {
|
||||
"query": "",
|
||||
"query": "签名",
|
||||
"matchingCase": false,
|
||||
"explainSearch": false,
|
||||
"collapseAll": false,
|
||||
@@ -200,41 +200,41 @@
|
||||
},
|
||||
"active": "25c9f7051aac05b3",
|
||||
"lastOpenFiles": [
|
||||
"docs/android面试/系统原理/PMS常见面试题.md",
|
||||
"docs/android面试/系统原理/DPMS常见面试题.md",
|
||||
"docs/Obsidian笔记体系/Projects/saars开发/aiapply/未命名 7.md",
|
||||
"docs/Obsidian笔记体系/Daily/2026-01-20.md",
|
||||
"docs/Obsidian笔记体系/Projects/saars开发/aiapply/节点配置中的温度和最大Token数是什么意思?.md",
|
||||
"docs/Obsidian笔记体系/Projects/saars开发/aiapply/工作流和Agent平台提示词目录.md",
|
||||
"docs/Obsidian笔记体系/Projects/saars开发/aiapply/工作流测试工具.md",
|
||||
"docs/Obsidian笔记体系/Projects/saars开发/aiapply/工作流(Workflow)vs Agent(智能体)的区别.md",
|
||||
"docs/Obsidian笔记体系/Projects/saars开发/aiapply/电商系统用户订单处理流程设计方案.md",
|
||||
"docs/Obsidian笔记体系/Projects/saars开发/aiapply/# 工作流和Agent平台架构方案分析.md",
|
||||
"docs/cursor/cursor.md",
|
||||
"docs/Obsidian笔记体系/Projects/知你-调测/知你--调测.md",
|
||||
"com.xiaomi.appstore.appclaim.signature.verification.apk",
|
||||
"docs/Obsidian笔记体系/Areas/07-系统安全/权限管理框架.md",
|
||||
"docs/Obsidian笔记体系/Areas/04-资源与包管理/动态加载与热修复原理.md",
|
||||
"docs/Google开发文档体系/最佳实践/安全最佳实践.md",
|
||||
"docs/Obsidian笔记体系/Daily/2026-01-13.md",
|
||||
"docs/Obsidian笔记体系/Daily/2026-01-14.md",
|
||||
"docs/Obsidian笔记体系/Daily/2026-01-15.md",
|
||||
"docs/Obsidian笔记体系/Projects/saars开发/aiapply/未命名 2.md",
|
||||
"docs/Obsidian笔记体系/Projects/saars开发/aiapply/android应用agent.md",
|
||||
"docs/git/git设置用户名和邮箱.md",
|
||||
"docs/Obsidian笔记体系/Projects/saars开发/aiapply/未命名 6.md",
|
||||
"docs/Obsidian笔记体系/Projects/saars开发/aiapply/未命名 5.md",
|
||||
"docs/Obsidian笔记体系/Projects/saars开发/aiapply/内容生成助手Agent.md",
|
||||
"docs/Obsidian笔记体系/Projects/saars开发/aiapply/智能需求分析与解决方案生成器_使用说明.md",
|
||||
"docs/Obsidian笔记体系/Projects/saars开发/aiapply/Agent和模板节点的区别.md",
|
||||
"docs/Obsidian笔记体系/Projects/saars开发/aiapply/未命名.md",
|
||||
"docs/Obsidian笔记体系/Projects/saars开发/aiapply/未命名 4.md",
|
||||
"docs/android面试/系统原理/DPMS常见面试题",
|
||||
"docs/DPMS常见面试题",
|
||||
"docs/android面试/系统原理/AMS面试.md",
|
||||
"ams常见面试题.txt",
|
||||
"docs/android面试/系统原理/WMS面试.md",
|
||||
"docs/Obsidian笔记体系/Projects/saars开发/aiapply/未命名 1.md",
|
||||
"docs/Obsidian笔记体系/Projects/saars开发/aiapply/未命名.md",
|
||||
"docs/Obsidian笔记体系/Projects/saars开发/aiapply",
|
||||
"docs/dify/管理员账户.md",
|
||||
"docs/dify/用户注册及添加成员.md",
|
||||
"docs/dify/密码输入错误次数超过限制时的机制.md",
|
||||
"docs/dify/使用dify,可以生成一个专项事务助手吗,比如公司正规化事务助手.md",
|
||||
"docs/dify/作为安卓高级开发工程师,除了项目管理,你完全可以在技术专项、团队效能和个人成长三大领域构建更懂你的专属助手.md",
|
||||
"docs/Obsidian笔记体系/Areas/09-调试与工具链/Systrace_Perfetto全解读.md",
|
||||
"docs/技术面试问题回答.md",
|
||||
"docs/Google开发文档体系/视频和教程/技术会议.md",
|
||||
"docs/Google开发文档体系/视频和教程/官方视频教程.md",
|
||||
"docs/Google开发文档体系/视频和教程/在线课程.md",
|
||||
"docs/Google开发文档体系/核心主题/用户界面.md",
|
||||
"docs/Google开发文档体系/核心主题/测试.md",
|
||||
"docs/Google开发文档体系/核心主题/数据存储.md",
|
||||
"docs/Google开发文档体系/核心主题/性能优化.md",
|
||||
"docs/Google开发文档体系/核心主题/应用架构.md",
|
||||
"docs/Google开发文档体系/核心主题/安全与隐私.md",
|
||||
"docs/Google开发文档体系/核心主题/应用基础.md",
|
||||
"docs/Google开发文档体系/核心主题/后台任务.md",
|
||||
"docs/Google开发文档体系/核心主题/Material_Design.md",
|
||||
"docs/Google开发文档体系/核心主题/Jetpack组件.md",
|
||||
"docs/Google开发文档体系/视频和教程",
|
||||
"docs/Google开发文档体系/核心主题",
|
||||
"docs/Google开发文档体系/示例代码",
|
||||
"docs/Google开发文档体系/最佳实践",
|
||||
"docs/Google开发文档体系/工具和资源",
|
||||
"docs/Google开发文档体系/入门指南"
|
||||
"docs/Google开发文档体系/工具和资源"
|
||||
]
|
||||
}
|
||||
BIN
com.xiaomi.appstore.appclaim.signature.verification.apk
Normal file
BIN
com.xiaomi.appstore.appclaim.signature.verification.apk
Normal file
Binary file not shown.
233
docs/Obsidian笔记体系/Daily/2026-01-20.md
Normal file
233
docs/Obsidian笔记体系/Daily/2026-01-20.md
Normal file
@@ -0,0 +1,233 @@
|
||||
## 基本信息
|
||||
- **日期**: 2026-01-20
|
||||
- **星期**: 星期二
|
||||
- **天气**: 雪
|
||||
- **心情**: 良好
|
||||
|
||||
## 今日计划
|
||||
|
||||
### 工作安排
|
||||
- [ ] 智能体平台
|
||||
- [ ]
|
||||
|
||||
### 学习计划
|
||||
- [ ] ### 高优先级(建议优先开发)
|
||||
|
||||
#### 1. 监控和告警前端界面
|
||||
|
||||
- 后端已完成(告警规则API、告警服务、告警日志API)
|
||||
|
||||
- 前端待开发:
|
||||
|
||||
- 系统监控面板(系统资源、执行统计、实时看板)
|
||||
|
||||
- 告警规则管理页面(列表、创建/编辑、启用/禁用)
|
||||
|
||||
- 告警日志页面(历史列表、详情查看、通知配置)
|
||||
|
||||
- 预计工作量:1-2周
|
||||
|
||||
#### 2. 用户体验优化
|
||||
|
||||
- 工作流编辑器:
|
||||
|
||||
- 节点对齐和自动布局
|
||||
|
||||
- 工作流模板快速应用
|
||||
|
||||
- 节点搜索和筛选
|
||||
|
||||
- Agent使用体验:
|
||||
|
||||
- Agent快速测试功能
|
||||
|
||||
- Agent使用统计和分析
|
||||
|
||||
- 预计工作量:1-2周
|
||||
|
||||
### 中优先级(按需开发)
|
||||
|
||||
#### 3. 性能优化
|
||||
|
||||
- 工作流执行性能优化(并发执行、缓存)
|
||||
|
||||
- 前端性能优化(懒加载、虚拟滚动)
|
||||
|
||||
- 数据库查询优化
|
||||
|
||||
- 预计工作量:1-2周
|
||||
|
||||
#### 4. 生产环境部署配置
|
||||
|
||||
- Docker/K8s配置
|
||||
|
||||
- Prometheus + Grafana监控
|
||||
|
||||
- ELK日志聚合
|
||||
|
||||
- CI/CD流程
|
||||
|
||||
- 预计工作量:2-3周
|
||||
|
||||
### 低优先级(长期规划)
|
||||
|
||||
#### 5. 多租户支持
|
||||
|
||||
- 租户隔离和管理
|
||||
|
||||
- 资源配额管理
|
||||
|
||||
- 预计工作量:3-4周
|
||||
|
||||
#### 6. 插件系统
|
||||
|
||||
- 插件注册机制
|
||||
|
||||
- 自定义节点插件开发框架
|
||||
|
||||
- 插件市场
|
||||
|
||||
- 预计工作量:4-6周
|
||||
|
||||
## 项目完成度
|
||||
|
||||
- 核心功能:100%(工作流、Agent、执行引擎等)
|
||||
|
||||
- 监控告警前端:0%(后端已完成,前端待开发)
|
||||
|
||||
- 用户体验优化:60%(基础功能完成,高级功能待开发)
|
||||
|
||||
- 高级功能:0%(多租户、插件系统)
|
||||
|
||||
- 部署运维:30%(开发环境完成,生产环境待完善)
|
||||
|
||||
整体完成度:约 85-90%
|
||||
|
||||
## 近期开发建议
|
||||
|
||||
接下来1-2个月的重点:
|
||||
|
||||
1. 完成监控和告警前端界面(提升可观测性)
|
||||
|
||||
2. 优化用户体验(提升使用体验)
|
||||
|
||||
3. 完善生产环境部署配置(准备上线)
|
||||
|
||||
核心功能已基本完成,系统可正常使用。建议优先完善监控告警前端和用户体验优化,再推进生产环境部署配置。
|
||||
|
||||
|
||||
### 其他计划
|
||||
- [ ] 其他事项1
|
||||
|
||||
## 工作记录
|
||||
|
||||
### 已完成
|
||||
- ✅ 知你--会员功能开发
|
||||
- 时间: HH:MM - HH:MM
|
||||
- 内容:
|
||||
- 收获:
|
||||
|
||||
- ✅ 知你--聊天会话界面跑马灯温馨提示
|
||||
- 时间: HH:MM - HH:MM
|
||||
- 内容:
|
||||
- 收获:
|
||||
### 进行中
|
||||
- 🔄 进行中事项1
|
||||
- 开始时间: HH:MM
|
||||
- 当前进度:
|
||||
- 遇到的问题:
|
||||
- 下一步计划:
|
||||
- 继续知你--会员功能开发
|
||||
|
||||
### 待处理
|
||||
- ⏳ 待处理事项1
|
||||
- 计划时间: HH:MM
|
||||
- 优先级: 高/中/低
|
||||
|
||||
## 学习记录
|
||||
|
||||
### 技术学习
|
||||
- **学习内容**:
|
||||
- **学习时间**: HH:MM - HH:MM
|
||||
- **学习方式**: 阅读/实践/视频
|
||||
- **关键收获**:
|
||||
- **相关链接**: [[相关文档]]
|
||||
|
||||
### 源码阅读
|
||||
- **阅读模块**:
|
||||
- **阅读时间**: HH:MM - HH:MM
|
||||
- **关键理解**:
|
||||
- **疑问**:
|
||||
- **相关链接**: [[相关源码]]
|
||||
|
||||
### 问题解决
|
||||
- **问题描述**:
|
||||
- **解决过程**:
|
||||
- **解决方案**:
|
||||
- **经验总结**:
|
||||
- **相关链接**: [[相关文档]]
|
||||
|
||||
## 会议记录
|
||||
|
||||
### 会议1
|
||||
- **时间**: HH:MM - HH:MM
|
||||
- **主题**:
|
||||
- **参与人**:
|
||||
- **关键内容**:
|
||||
- **行动项**:
|
||||
- **相关链接**: [[会议记录]]
|
||||
|
||||
## 思考与总结
|
||||
|
||||
### 今日收获
|
||||
1. 收获1
|
||||
2. 收获2
|
||||
3. 收获3
|
||||
|
||||
### 今日反思
|
||||
- 做得好的地方:
|
||||
- 需要改进的地方:
|
||||
- 改进计划:
|
||||
|
||||
### 明日计划
|
||||
1. 计划1
|
||||
2. 计划2
|
||||
3. 计划3
|
||||
|
||||
## 技术笔记
|
||||
|
||||
### 技术点1
|
||||
- **内容**:
|
||||
- **代码示例**:
|
||||
```java
|
||||
// 代码示例
|
||||
```
|
||||
|
||||
- **关键理解**:
|
||||
- **相关链接**: [[相关文档]]
|
||||
|
||||
### 技术点2
|
||||
- **内容**:
|
||||
- **关键理解**:
|
||||
|
||||
## 问题与疑问
|
||||
|
||||
### 问题1
|
||||
- **问题描述**:
|
||||
- **思考**:
|
||||
- **待解决**:
|
||||
|
||||
### 问题2
|
||||
- **问题描述**:
|
||||
- **思考**:
|
||||
|
||||
## 相关链接
|
||||
|
||||
- [[相关项目]]
|
||||
- [[相关文档]]
|
||||
- [[相关笔记]]
|
||||
|
||||
## 备注
|
||||
|
||||
- 备注1
|
||||
- 备注2
|
||||
1399
docs/Obsidian笔记体系/Projects/saars开发/aiapply/# 工作流和Agent平台架构方案分析.md
Normal file
1399
docs/Obsidian笔记体系/Projects/saars开发/aiapply/# 工作流和Agent平台架构方案分析.md
Normal file
File diff suppressed because it is too large
Load Diff
64
docs/Obsidian笔记体系/Projects/saars开发/aiapply/Agent和模板节点的区别.md
Normal file
64
docs/Obsidian笔记体系/Projects/saars开发/aiapply/Agent和模板节点的区别.md
Normal file
@@ -0,0 +1,64 @@
|
||||
### 1. Agent(智能体)
|
||||
|
||||
- 整个工作流/智能体的概念
|
||||
|
||||
- 包含多个节点和它们之间的连接关系
|
||||
|
||||
- 有完整的输入输出流程
|
||||
|
||||
### 2. 模板节点(Template Node)
|
||||
|
||||
- 工作流中的一个节点类型
|
||||
|
||||
- 用于生成文本或内容
|
||||
|
||||
- 需要配置提示词(Prompt)来定义其行为
|
||||
|
||||
|
||||
|
||||
|
||||
## 模板节点实施建议
|
||||
|
||||
### 阶段一:基础功能(推荐先做)
|
||||
|
||||
1. 添加 template 节点到节点类型列表
|
||||
|
||||
2. 创建模板管理页面(CRUD)
|
||||
|
||||
3. 模板选择器(创建节点时选择模板)
|
||||
|
||||
4. 数据库表:node_templates
|
||||
|
||||
### 阶段二:增强功能
|
||||
|
||||
1. 模板分类和标签
|
||||
|
||||
2. 模板搜索和筛选
|
||||
|
||||
3. 模板导入/导出
|
||||
|
||||
4. 模板版本管理
|
||||
|
||||
### 阶段三:高级功能
|
||||
|
||||
1. 模板市场
|
||||
|
||||
2. 模板评分系统
|
||||
|
||||
3. 模板使用统计
|
||||
|
||||
4. 模板推荐
|
||||
|
||||
## 总结
|
||||
|
||||
建议实现模板管理功能,原因:
|
||||
|
||||
- 提升用户体验和效率
|
||||
|
||||
- 支持标准化与知识复用
|
||||
|
||||
- 增强团队协作
|
||||
|
||||
- 为后续模板市场打基础
|
||||
|
||||
优先级:高。这是提升平台易用性的重要功能。
|
||||
89
docs/Obsidian笔记体系/Projects/saars开发/aiapply/android应用agent.md
Normal file
89
docs/Obsidian笔记体系/Projects/saars开发/aiapply/android应用agent.md
Normal file
@@ -0,0 +1,89 @@
|
||||
## 项目结构
|
||||
|
||||
androidExampleDemo/
|
||||
|
||||
├── app/
|
||||
|
||||
│ ├── src/main/
|
||||
|
||||
│ │ ├── java/com/example/agentclient/
|
||||
|
||||
│ │ │ ├── MainActivity.java # 主Activity,包含UI和业务逻辑
|
||||
|
||||
│ │ │ ├── models/ # 数据模型
|
||||
|
||||
│ │ │ │ ├── Agent.java
|
||||
|
||||
│ │ │ │ ├── AgentExecutionRequest.java
|
||||
|
||||
│ │ │ │ ├── ExecutionResponse.java
|
||||
|
||||
│ │ │ │ ├── ExecutionStatusResponse.java
|
||||
|
||||
│ │ │ │ └── TokenResponse.java
|
||||
|
||||
│ │ │ └── utils/
|
||||
|
||||
│ │ │ └── ApiClient.java # API客户端配置
|
||||
|
||||
│ │ ├── res/
|
||||
|
||||
│ │ │ ├── layout/activity_main.xml # 主界面布局
|
||||
|
||||
│ │ │ ├── values/strings.xml
|
||||
|
||||
│ │ │ └── xml/network_security_config.xml
|
||||
|
||||
│ │ └── AndroidManifest.xml
|
||||
|
||||
│ └── build.gradle
|
||||
|
||||
├── build.gradle
|
||||
|
||||
├── settings.gradle
|
||||
|
||||
└── README.md
|
||||
|
||||
## 主要功能
|
||||
|
||||
1. 自动登录:启动时使用配置的用户名和密码登录
|
||||
|
||||
2. Agent 查找:通过名称查找“情感分析Agent”并获取其ID
|
||||
|
||||
3. 发送消息:输入文本后发送给Agent进行分析
|
||||
|
||||
4. 轮询结果:自动轮询执行状态,完成后显示结果
|
||||
|
||||
5. 实时状态:显示当前执行节点和状态
|
||||
|
||||
## 配置说明
|
||||
|
||||
在 MainActivity.java 中修改以下配置:
|
||||
|
||||
private static final String USERNAME = "admin";
|
||||
|
||||
private static final String PASSWORD = "123456";
|
||||
|
||||
private static final String AGENT_NAME = "情感分析Agent";
|
||||
|
||||
在 ApiClient.java 中修改服务器地址:
|
||||
|
||||
private static final String BASE_URL = "http://your-server-ip:8037";
|
||||
|
||||
## 使用步骤
|
||||
|
||||
1. 使用 Android Studio 打开项目
|
||||
|
||||
2. 同步 Gradle 依赖
|
||||
|
||||
3. 修改配置(服务器地址、用户名、密码、Agent名称)
|
||||
|
||||
4. 运行到 Android 设备或模拟器
|
||||
|
||||
5. 应用会自动登录并查找Agent
|
||||
|
||||
6. 输入文本后点击“发送”按钮
|
||||
|
||||
7. 等待Agent处理并查看结果
|
||||
|
||||
项目已就绪,可直接在 Android Studio 中打开使用。所有代码使用 Java 编写,符合 Android 开发规范。
|
||||
71
docs/Obsidian笔记体系/Projects/saars开发/aiapply/内容生成助手Agent.md
Normal file
71
docs/Obsidian笔记体系/Projects/saars开发/aiapply/内容生成助手Agent.md
Normal file
@@ -0,0 +1,71 @@
|
||||
### Agent 信息
|
||||
|
||||
- 名称:内容生成助手
|
||||
|
||||
- ID:cc5653b9-49e8-46bd-900f-78ab8e546e7e
|
||||
|
||||
- 状态:已发布(published)
|
||||
|
||||
- 节点数量:11 个
|
||||
|
||||
- 连接数量:13 条
|
||||
|
||||
### 工作流结构
|
||||
|
||||
开始 → 需求分析 → 数据准备 → 内容类型判断 → [文章生成 | 文案生成 | 脚本生成 | 通用生成] → 内容整合 → 内容优化 → 结束
|
||||
|
||||
### 节点说明
|
||||
|
||||
1. 开始节点:接收用户输入(主题、类型、要求等)
|
||||
|
||||
2. 需求分析节点:分析用户需求,提取内容类型、主题、风格等关键信息
|
||||
|
||||
3. 数据准备节点:整合需求分析结果和原始查询
|
||||
|
||||
4. 内容类型判断节点:根据内容类型进行分支处理
|
||||
|
||||
5. 文章生成节点:生成结构完整的文章内容
|
||||
|
||||
6. 文案生成节点:生成营销文案、广告文案等
|
||||
|
||||
7. 脚本生成节点:生成视频/音频脚本
|
||||
|
||||
8. 通用内容生成节点:处理其他类型的内容生成需求
|
||||
|
||||
9. 内容整合节点:整合生成的内容和需求信息
|
||||
|
||||
10. 内容优化节点:优化和润色内容,确保质量
|
||||
|
||||
11. 结束节点:返回最终优化后的内容
|
||||
|
||||
### 使用示例
|
||||
|
||||
- 输入:帮我写一篇关于人工智能发展趋势的博客文章,2000字左右,风格轻松易懂
|
||||
|
||||
- 输入:生成一个产品推广的营销文案,面向年轻白领群体
|
||||
|
||||
- 输入:写一个5分钟的产品介绍视频脚本
|
||||
|
||||
### 功能特点
|
||||
|
||||
1. 智能需求分析:自动提取内容类型、主题、风格等关键信息
|
||||
|
||||
2. 多类型支持:支持文章、文案、脚本等多种内容类型
|
||||
|
||||
3. 条件分支:根据内容类型自动选择最合适的生成节点
|
||||
|
||||
4. 内容优化:自动优化和润色生成的内容
|
||||
|
||||
5. 纯文本输出:最终输出为纯文本 Markdown 格式,适合人机交互
|
||||
|
||||
### 测试方法
|
||||
|
||||
1. 在 Agent 管理页面找到“内容生成助手”
|
||||
|
||||
2. 点击测试或运行
|
||||
|
||||
3. 输入内容生成需求
|
||||
|
||||
4. 查看生成结果
|
||||
|
||||
Agent 已配置完成,可正常使用。如需调整,请告知。
|
||||
1241
docs/Obsidian笔记体系/Projects/saars开发/aiapply/工作流和Agent平台提示词目录.md
Normal file
1241
docs/Obsidian笔记体系/Projects/saars开发/aiapply/工作流和Agent平台提示词目录.md
Normal file
File diff suppressed because it is too large
Load Diff
2
docs/Obsidian笔记体系/Projects/saars开发/aiapply/工作流测试工具.md
Normal file
2
docs/Obsidian笔记体系/Projects/saars开发/aiapply/工作流测试工具.md
Normal file
@@ -0,0 +1,2 @@
|
||||
支持通过 Agent 名称测试工作流的工具
|
||||
cd /home/renjianbo/aiagent && python3 test_workflow_tool.py -a "内容生成助手" -i "生成一个导出androidlog的脚本"
|
||||
@@ -0,0 +1,226 @@
|
||||
查看项目中工作流和 Agent 的定义与实现,以便准确说明它们的区别。
|
||||
|
||||
查看 Agent 和 Workflow 的执行逻辑,以明确它们的区别:
|
||||
|
||||
基于代码,说明工作流和 Agent 的区别:
|
||||
|
||||
## 工作流(Workflow)vs Agent(智能体)的区别
|
||||
|
||||
### 1. 概念层面
|
||||
|
||||
工作流(Workflow)
|
||||
|
||||
- 定义:可复用的自动化流程模板
|
||||
|
||||
- 特点:技术导向,关注“如何执行”
|
||||
|
||||
- 用途:流程编排、任务自动化、数据处理管道
|
||||
|
||||
Agent(智能体)
|
||||
|
||||
- 定义:面向业务场景的智能应用
|
||||
|
||||
- 特点:业务导向,关注“解决什么问题”
|
||||
|
||||
- 用途:智能助手、专业服务、业务应用
|
||||
|
||||
### 2. 数据模型层面
|
||||
|
||||
从代码结构看:
|
||||
|
||||
workflow.pyLines 12-18
|
||||
|
||||
class Workflow(Base):
|
||||
|
||||
"""工作流表"""
|
||||
|
||||
__tablename__ = "workflows"
|
||||
|
||||
id = Column(CHAR(36), primary_key=True, default=lambda: str(uuid.uuid4()), comment="工作流ID")
|
||||
|
||||
name = Column(String(100), nullable=False, comment="工作流名称")
|
||||
|
||||
description = Column(Text, comment="描述")
|
||||
|
||||
nodes = Column(JSON, nullable=False, comment="节点配置")
|
||||
|
||||
edges = Column(JSON, nullable=False, comment="边配置")
|
||||
|
||||
agent.pyLines 11-18
|
||||
|
||||
class Agent(Base):
|
||||
|
||||
"""智能体表"""
|
||||
|
||||
__tablename__ = "agents"
|
||||
|
||||
id = Column(CHAR(36), primary_key=True, default=lambda: str(uuid.uuid4()), comment="智能体ID")
|
||||
|
||||
name = Column(String(100), nullable=False, comment="智能体名称")
|
||||
|
||||
description = Column(Text, comment="描述")
|
||||
|
||||
workflow_config = Column(JSON, nullable=False, comment="工作流配置")
|
||||
|
||||
区别:
|
||||
|
||||
- Workflow:直接存储 nodes 和 edges
|
||||
|
||||
- Agent:存储 workflow_config(包含 nodes 和 edges)
|
||||
|
||||
### 3. 执行层面
|
||||
|
||||
从执行代码看,Agent 执行时会提取 workflow_config 并调用工作流引擎:
|
||||
|
||||
executions.pyLines 96-137
|
||||
|
||||
elif execution_data.agent_id:
|
||||
|
||||
agent = db.query(Agent).filter(Agent.id == execution_data.agent_id).first()
|
||||
|
||||
if not agent:
|
||||
|
||||
raise HTTPException(status_code=404, detail="智能体不存在")
|
||||
|
||||
# 检查权限:只有已发布的Agent可以执行,或者所有者可以测试
|
||||
|
||||
if agent.status not in ["published", "running"] and agent.user_id != current_user.id:
|
||||
|
||||
raise HTTPException(status_code=403, detail="Agent未发布或无权执行")
|
||||
|
||||
# 验证工作流配置
|
||||
|
||||
if not agent.workflow_config or "nodes" not in agent.workflow_config or "edges" not in agent.workflow_config:
|
||||
|
||||
raise HTTPException(status_code=400, detail="Agent工作流配置无效")
|
||||
|
||||
# 创建执行记录
|
||||
|
||||
execution = Execution(
|
||||
|
||||
agent_id=execution_data.agent_id,
|
||||
|
||||
input_data=execution_data.input_data,
|
||||
|
||||
status="pending"
|
||||
|
||||
)
|
||||
|
||||
db.add(execution)
|
||||
|
||||
db.commit()
|
||||
|
||||
db.refresh(execution)
|
||||
|
||||
# 异步执行Agent工作流
|
||||
|
||||
workflow_data = {
|
||||
|
||||
'nodes': agent.workflow_config.get('nodes', []),
|
||||
|
||||
'edges': agent.workflow_config.get('edges', [])
|
||||
|
||||
}
|
||||
|
||||
# 调试:检查节点数据是否包含 api_key
|
||||
|
||||
logger.debug(f"[rjb] Agent工作流数据: nodes数量={len(workflow_data['nodes'])}")
|
||||
|
||||
for node in workflow_data['nodes']:
|
||||
|
||||
if node.get('type') == 'llm':
|
||||
|
||||
node_data = node.get('data', {})
|
||||
|
||||
logger.debug(f"[rjb] LLM节点: node_id={node.get('id')}, data keys={list(node_data.keys())}, api_key={'已配置' if node_data.get('api_key') else '未配置'}")
|
||||
|
||||
task = execute_workflow_task.delay(
|
||||
|
||||
str(execution.id),
|
||||
|
||||
f"agent_{agent.id}", # 使用agent ID作为workflow_id标识
|
||||
|
||||
workflow_data,
|
||||
|
||||
execution_data.input_data
|
||||
|
||||
)
|
||||
|
||||
结论:Agent 和 Workflow 使用同一个执行引擎(WorkflowEngine),但 Agent 是工作流的业务封装。
|
||||
|
||||
### 4. 使用场景对比
|
||||
|
||||
|特性|工作流(Workflow)|Agent(智能体)|
|
||||
|---|---|---|
|
||||
|定位|技术工具|业务应用|
|
||||
|使用者|开发者、技术人员|业务用户、最终用户|
|
||||
|关注点|流程逻辑、节点配置|业务目标、用户体验|
|
||||
|发布状态|通常用于内部测试|需要发布后才能使用|
|
||||
|权限控制|相对简单|更严格的权限管理|
|
||||
|使用方式|直接调用执行|通过 Agent 接口调用|
|
||||
|
||||
### 5. 实际应用示例
|
||||
|
||||
工作流示例:
|
||||
|
||||
- "数据处理工作流":清洗 → 转换 → 存储
|
||||
|
||||
- "API 调用工作流":请求 → 验证 → 响应
|
||||
|
||||
- "文件处理工作流":上传 → 解析 → 分析
|
||||
|
||||
Agent 示例:
|
||||
|
||||
- "智能客服 Agent":理解问题 → 查询知识库 → 生成回答
|
||||
|
||||
- "内容创作 Agent":分析需求 → 生成大纲 → 撰写内容
|
||||
|
||||
- "数据分析 Agent":收集数据 → 分析 → 生成报告
|
||||
|
||||
### 6. 关系总结
|
||||
|
||||
Agent(智能体)
|
||||
|
||||
↓ 包含
|
||||
|
||||
workflow_config(工作流配置)
|
||||
|
||||
↓ 包含
|
||||
|
||||
nodes + edges(节点和连接)
|
||||
|
||||
↓ 执行
|
||||
|
||||
WorkflowEngine(工作流引擎)
|
||||
|
||||
简单理解:
|
||||
|
||||
- 工作流 = 可执行的流程模板
|
||||
|
||||
- Agent = 包装了工作流的业务应用
|
||||
|
||||
类比:
|
||||
|
||||
- 工作流 = 函数/方法(可复用逻辑)
|
||||
|
||||
- Agent = 应用程序(面向用户的完整应用)
|
||||
|
||||
### 7. 选择建议
|
||||
|
||||
使用工作流:
|
||||
|
||||
- 需要可复用的流程模板
|
||||
|
||||
- 技术性任务自动化
|
||||
|
||||
- 作为其他系统的组件
|
||||
|
||||
使用 Agent:
|
||||
|
||||
- 面向最终用户的智能应用
|
||||
|
||||
- 需要发布和权限管理
|
||||
|
||||
- 业务场景的完整解决方案
|
||||
|
||||
总结:Agent 是工作流的业务封装,底层执行相同,但定位和使用方式不同。工作流偏技术,Agent 偏业务。
|
||||
@@ -0,0 +1,539 @@
|
||||
# 智能需求分析与解决方案生成器 - 使用说明
|
||||
|
||||
|
||||
|
||||
## 📋 Agent 基本信息
|
||||
|
||||
|
||||
|
||||
- **名称**: 智能需求分析与解决方案生成器
|
||||
|
||||
- **状态**: 已发布(可直接使用)
|
||||
|
||||
- **节点数量**: 8个节点
|
||||
|
||||
- **连接数量**: 8条连接
|
||||
|
||||
- **Agent ID**: `9195f8df-3340-46a0-b761-b955a57acc6c`
|
||||
|
||||
|
||||
|
||||
## 🎯 功能概述
|
||||
|
||||
|
||||
|
||||
这是一个智能的多节点Agent,能够:
|
||||
|
||||
1. **自动理解用户需求** - 分析用户输入,提取关键信息
|
||||
|
||||
2. **智能需求分类** - 根据需求类型自动分类(技术方案/业务流程/数据分析等)
|
||||
|
||||
3. **专业方案生成** - 调用专业模板或LLM生成针对性解决方案
|
||||
|
||||
4. **方案整合优化** - 整合各分支结果,优化输出格式
|
||||
|
||||
5. **专业文档输出** - 生成结构化的Markdown文档
|
||||
|
||||
|
||||
|
||||
## 🔄 工作流结构
|
||||
|
||||
|
||||
|
||||
```
|
||||
|
||||
开始节点
|
||||
|
||||
↓
|
||||
|
||||
需求理解与分析节点(LLM)
|
||||
|
||||
↓
|
||||
|
||||
需求分类节点(条件判断)
|
||||
|
||||
├─→ [技术方案分支] → 技术方案设计节点(Template/LLM)
|
||||
|
||||
└─→ [业务流程分支] → 业务流程设计节点(Template/LLM)
|
||||
|
||||
↓ ↓
|
||||
|
||||
└────→ 方案整合节点(Transform)
|
||||
|
||||
↓
|
||||
|
||||
输出优化与格式化节点(LLM)
|
||||
|
||||
↓
|
||||
|
||||
结束节点
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
## 📊 节点详细说明
|
||||
|
||||
|
||||
|
||||
### 1. 开始节点(start-1)
|
||||
|
||||
- **功能**: 接收用户输入
|
||||
|
||||
- **输入格式**: JSON格式
|
||||
|
||||
- **输出**: 将用户输入传递给需求理解节点
|
||||
|
||||
|
||||
|
||||
### 2. 需求理解与分析节点(llm-requirement-analysis)
|
||||
|
||||
- **类型**: LLM节点
|
||||
|
||||
- **模型**: DeepSeek Chat
|
||||
|
||||
- **功能**:
|
||||
|
||||
- 分析用户需求
|
||||
|
||||
- 提取关键信息
|
||||
|
||||
- 识别需求类型、复杂度、领域等
|
||||
|
||||
- **输出格式**: JSON
|
||||
|
||||
```json
|
||||
|
||||
{
|
||||
|
||||
"requirement_type": "技术方案|业务流程|数据分析|工作流设计|其他",
|
||||
|
||||
"key_points": ["关键点1", "关键点2", ...],
|
||||
|
||||
"complexity": "简单|中等|复杂",
|
||||
|
||||
"domain": "领域(如:电商、金融、教育等)",
|
||||
|
||||
"summary": "需求摘要"
|
||||
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
### 3. 需求分类节点(condition-classify)
|
||||
|
||||
- **类型**: 条件节点
|
||||
|
||||
- **功能**: 根据需求类型进行分支
|
||||
|
||||
- **判断条件**:
|
||||
|
||||
- 如果需求类型是"技术方案"或"API集成" → 走技术方案分支
|
||||
|
||||
- 否则 → 走业务流程分支
|
||||
|
||||
|
||||
|
||||
### 4. 技术方案设计节点
|
||||
|
||||
- **类型**: Template节点(优先)或LLM节点(备用)
|
||||
|
||||
- **功能**: 生成技术方案
|
||||
|
||||
- **输出内容**:
|
||||
|
||||
- 技术选型建议
|
||||
|
||||
- 架构设计
|
||||
|
||||
- 实施步骤
|
||||
|
||||
- 风险评估
|
||||
|
||||
- 最佳实践建议
|
||||
|
||||
|
||||
|
||||
### 5. 业务流程设计节点
|
||||
|
||||
- **类型**: Template节点(优先)或LLM节点(备用)
|
||||
|
||||
- **功能**: 生成业务流程方案
|
||||
|
||||
- **输出内容**:
|
||||
|
||||
- 流程概述
|
||||
|
||||
- 关键步骤
|
||||
|
||||
- 角色与职责
|
||||
|
||||
- 流程优化建议
|
||||
|
||||
- 实施路线图
|
||||
|
||||
|
||||
|
||||
### 6. 方案整合节点(transform-integration)
|
||||
|
||||
- **类型**: Transform节点
|
||||
|
||||
- **功能**: 整合各分支的结果
|
||||
|
||||
- **模式**: 合并模式
|
||||
|
||||
- **输出**: 包含解决方案、需求分析、时间戳的整合数据
|
||||
|
||||
|
||||
|
||||
### 7. 输出优化与格式化节点(llm-optimization)
|
||||
|
||||
- **类型**: LLM节点
|
||||
|
||||
- **模型**: DeepSeek Chat
|
||||
|
||||
- **功能**:
|
||||
|
||||
- 优化文档结构
|
||||
|
||||
- 补充关键细节
|
||||
|
||||
- 添加实施建议
|
||||
|
||||
- 统一格式
|
||||
|
||||
- **输出**: 完整的Markdown文档
|
||||
|
||||
|
||||
|
||||
### 8. 结束节点(end-1)
|
||||
|
||||
- **功能**: 返回最终结果
|
||||
|
||||
|
||||
|
||||
## 🚀 使用方法
|
||||
|
||||
|
||||
|
||||
### 方法一:通过Agent管理界面测试
|
||||
|
||||
|
||||
|
||||
1. **进入Agent管理页面**
|
||||
|
||||
- 在左侧菜单选择"Agent管理"
|
||||
|
||||
- 找到"智能需求分析与解决方案生成器"
|
||||
|
||||
|
||||
|
||||
2. **测试Agent**
|
||||
|
||||
- 点击Agent名称进入详情页
|
||||
|
||||
- 点击"测试"按钮
|
||||
|
||||
- 在输入框中输入你的需求
|
||||
|
||||
|
||||
|
||||
3. **输入示例**:
|
||||
|
||||
```json
|
||||
|
||||
{
|
||||
|
||||
"query": "我需要设计一个电商系统的用户订单处理流程,包括下单、支付、发货、售后等环节"
|
||||
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
或者简单输入:
|
||||
|
||||
```json
|
||||
|
||||
{
|
||||
|
||||
"query": "设计一个微服务架构的在线教育平台"
|
||||
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
4. **查看结果**
|
||||
|
||||
- 等待Agent执行完成(通常需要30-60秒)
|
||||
|
||||
- 查看生成的解决方案文档
|
||||
|
||||
|
||||
|
||||
### 方法二:通过API调用
|
||||
|
||||
|
||||
|
||||
```bash
|
||||
|
||||
POST /api/v1/executions
|
||||
|
||||
Content-Type: application/json
|
||||
|
||||
Authorization: Bearer <your_token>
|
||||
|
||||
|
||||
|
||||
{
|
||||
|
||||
"agent_id": "9195f8df-3340-46a0-b761-b955a57acc6c",
|
||||
|
||||
"input_data": {
|
||||
|
||||
"query": "你的需求描述"
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
## 💡 使用场景示例
|
||||
|
||||
|
||||
|
||||
### 场景1:技术方案设计
|
||||
|
||||
**输入**:
|
||||
|
||||
```
|
||||
|
||||
设计一个高并发的实时推荐系统,需要支持千万级用户,毫秒级响应
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
**输出**:
|
||||
|
||||
- 技术选型(Redis、Kafka、Spark等)
|
||||
|
||||
- 架构设计图
|
||||
|
||||
- 实施步骤
|
||||
|
||||
- 性能优化建议
|
||||
|
||||
|
||||
|
||||
### 场景2:业务流程优化
|
||||
|
||||
**输入**:
|
||||
|
||||
```
|
||||
|
||||
优化我们公司的客户服务流程,提高客户满意度
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
**输出**:
|
||||
|
||||
- 当前流程分析
|
||||
|
||||
- 优化建议
|
||||
|
||||
- 新流程设计
|
||||
|
||||
- 实施路线图
|
||||
|
||||
|
||||
|
||||
### 场景3:系统架构设计
|
||||
|
||||
**输入**:
|
||||
|
||||
```
|
||||
|
||||
设计一个微服务架构的电商平台,包括用户、商品、订单、支付等模块
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
**输出**:
|
||||
|
||||
- 微服务拆分方案
|
||||
|
||||
- 服务间通信设计
|
||||
|
||||
- 数据一致性方案
|
||||
|
||||
- 部署架构
|
||||
|
||||
|
||||
|
||||
## ⚙️ 配置说明
|
||||
|
||||
|
||||
|
||||
### 节点配置参数
|
||||
|
||||
|
||||
|
||||
- **LLM节点温度**: 0.5-0.7(平衡创造性和准确性)
|
||||
|
||||
- **最大Token数**: 2000-3000(确保输出完整)
|
||||
|
||||
- **模型**: DeepSeek Chat(默认)
|
||||
|
||||
|
||||
|
||||
### 自定义配置
|
||||
|
||||
|
||||
|
||||
如果需要修改Agent配置:
|
||||
|
||||
1. 进入Agent管理页面
|
||||
|
||||
2. 点击"设计"按钮
|
||||
|
||||
3. 在可视化编辑器中修改节点配置
|
||||
|
||||
4. 保存并发布
|
||||
|
||||
|
||||
|
||||
## 📝 输出格式
|
||||
|
||||
|
||||
|
||||
Agent最终输出为结构化的Markdown文档,包含:
|
||||
|
||||
|
||||
|
||||
1. **需求摘要**
|
||||
|
||||
2. **需求分析结果**
|
||||
|
||||
- 需求类型
|
||||
|
||||
- 关键点
|
||||
|
||||
- 复杂度评估
|
||||
|
||||
- 领域识别
|
||||
|
||||
3. **解决方案**
|
||||
|
||||
- 详细方案内容
|
||||
|
||||
- 实施建议
|
||||
|
||||
- 最佳实践
|
||||
|
||||
4. **附录**
|
||||
|
||||
- 相关资源
|
||||
|
||||
- 注意事项
|
||||
|
||||
|
||||
|
||||
## 🔍 注意事项
|
||||
|
||||
|
||||
|
||||
1. **输入格式**: 建议使用JSON格式,包含`query`字段
|
||||
|
||||
2. **执行时间**: 复杂需求可能需要60-120秒
|
||||
|
||||
3. **Token限制**: 如果输出被截断,可以增加`max_tokens`参数
|
||||
|
||||
4. **需求描述**: 越详细的需求描述,生成的方案越准确
|
||||
|
||||
|
||||
|
||||
## 🛠️ 故障排查
|
||||
|
||||
|
||||
|
||||
### 问题1:Agent执行超时
|
||||
|
||||
**解决方案**:
|
||||
|
||||
- 检查网络连接
|
||||
|
||||
- 确认LLM服务正常
|
||||
|
||||
- 简化需求描述
|
||||
|
||||
|
||||
|
||||
### 问题2:输出不完整
|
||||
|
||||
**解决方案**:
|
||||
|
||||
- 增加`max_tokens`参数
|
||||
|
||||
- 分段处理复杂需求
|
||||
|
||||
|
||||
|
||||
### 问题3:分类不准确
|
||||
|
||||
**解决方案**:
|
||||
|
||||
- 在需求描述中明确说明需求类型
|
||||
|
||||
- 例如:"我需要一个技术方案..."或"请帮我设计业务流程..."
|
||||
|
||||
|
||||
|
||||
## 📈 性能优化建议
|
||||
|
||||
|
||||
|
||||
1. **缓存机制**: 对于相似需求,可以复用之前的分析结果
|
||||
|
||||
2. **并行处理**: 对于多个独立需求,可以并行执行
|
||||
|
||||
3. **模板优化**: 根据使用频率优化模板选择逻辑
|
||||
|
||||
|
||||
|
||||
## 🔄 更新日志
|
||||
|
||||
|
||||
|
||||
- **v1.0** (2026-01-19): 初始版本
|
||||
|
||||
- 支持需求理解和分类
|
||||
|
||||
- 支持技术方案和业务流程生成
|
||||
|
||||
- 支持输出优化和格式化
|
||||
|
||||
|
||||
|
||||
## 📞 技术支持
|
||||
|
||||
|
||||
|
||||
如有问题或建议,请联系系统管理员或查看系统日志。
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
**最后更新**: 2026-01-19
|
||||
File diff suppressed because it is too large
Load Diff
2739
docs/Obsidian笔记体系/Projects/saars开发/aiapply/未命名 2.md
Normal file
2739
docs/Obsidian笔记体系/Projects/saars开发/aiapply/未命名 2.md
Normal file
File diff suppressed because it is too large
Load Diff
43
docs/Obsidian笔记体系/Projects/saars开发/aiapply/未命名 3.md
Normal file
43
docs/Obsidian笔记体系/Projects/saars开发/aiapply/未命名 3.md
Normal file
@@ -0,0 +1,43 @@
|
||||
## 下一步可选方向
|
||||
|
||||
### 1. 高级功能(企业级特性)
|
||||
|
||||
- 多租户支持:租户隔离、资源配额管理
|
||||
|
||||
- 权限管理(RBAC):基于角色的访问控制
|
||||
|
||||
- 监控和告警:系统监控、性能监控、告警通知
|
||||
|
||||
- 插件系统:自定义节点插件、插件市场
|
||||
|
||||
### 2. 功能增强
|
||||
|
||||
- 更多节点类型(如:邮件节点、消息队列节点等)
|
||||
|
||||
- 工作流模板市场
|
||||
|
||||
- 工作流分享和协作
|
||||
|
||||
- 批量操作功能
|
||||
|
||||
### 3. 优化和完善
|
||||
|
||||
- 性能优化(数据库查询、前端渲染)
|
||||
|
||||
- 用户体验优化
|
||||
|
||||
- 错误处理和提示优化
|
||||
|
||||
- 文档完善
|
||||
|
||||
### 4. 部署和运维
|
||||
|
||||
- 生产环境配置
|
||||
|
||||
- Kubernetes 部署
|
||||
|
||||
- CI/CD 流程
|
||||
|
||||
- 监控和日志系统
|
||||
|
||||
请选择下一步方向,或告诉我具体需求。
|
||||
23
docs/Obsidian笔记体系/Projects/saars开发/aiapply/未命名 4.md
Normal file
23
docs/Obsidian笔记体系/Projects/saars开发/aiapply/未命名 4.md
Normal file
@@ -0,0 +1,23 @@
|
||||
## 现在可以测试了
|
||||
|
||||
请重新测试 Agent:
|
||||
|
||||
1. 点击右上角“测试运行”
|
||||
|
||||
2. 执行应该能正常启动
|
||||
|
||||
3. 节点应该显示执行动画:
|
||||
|
||||
- 执行中的节点:蓝色边框 + 脉冲动画
|
||||
|
||||
- 已完成的节点:绿色边框
|
||||
|
||||
- 失败的节点:红色边框
|
||||
|
||||
如果仍有问题,请查看:
|
||||
|
||||
- 后端日志:docker-compose -f docker-compose.dev.yml logs -f backend celery
|
||||
|
||||
- 前端控制台:查看 [rjb] 前缀的调试日志
|
||||
|
||||
现在链路调用应该可以正常工作了。
|
||||
84
docs/Obsidian笔记体系/Projects/saars开发/aiapply/未命名 5.md
Normal file
84
docs/Obsidian笔记体系/Projects/saars开发/aiapply/未命名 5.md
Normal file
@@ -0,0 +1,84 @@
|
||||
### **个人简历**
|
||||
|
||||
**基本信息**
|
||||
姓名:[您的姓名]
|
||||
电话:[您的手机号]
|
||||
邮箱:[您的邮箱]
|
||||
GitHub:[您的GitHub链接](可选)
|
||||
工作年限:[X]年
|
||||
求职意向:Android高级工程师
|
||||
|
||||
---
|
||||
|
||||
### **专业技能**
|
||||
1. **编程语言**:精通Java、Kotlin,熟悉C++、Python。
|
||||
2. **Android开发**:
|
||||
- 熟悉Android SDK、NDK,掌握Jetpack组件(ViewModel、LiveData、Room等)。
|
||||
- 精通多线程、性能优化(内存泄漏、卡顿分析)、自定义View及动画。
|
||||
- 熟悉MVVM、MVP等架构设计,具备模块化、组件化开发经验。
|
||||
3. **跨平台技术**:了解Flutter或React Native,有混合开发经验。
|
||||
4. **工具与框架**:
|
||||
- 熟练使用Retrofit、OkHttp、Glide、RxJava等主流框架。
|
||||
- 掌握Gradle构建、CI/CD流程,熟悉Git版本管理。
|
||||
5. **其他能力**:
|
||||
- 熟悉设计模式、数据结构与算法。
|
||||
- 了解敏捷开发流程,有团队协作和项目管理经验。
|
||||
|
||||
---
|
||||
|
||||
### **工作经历**
|
||||
**[公司名称] | Android高级工程师 | [入职时间] - [离职时间]**
|
||||
- 主导[项目名称]开发,采用Kotlin+MVVM重构,性能提升30%。
|
||||
- 设计并实现[核心功能模块],如音视频处理、实时通信等。
|
||||
- 优化应用启动速度,减少冷启动时间至500ms以下。
|
||||
- 带领3人小组完成模块化改造,降低代码耦合度。
|
||||
|
||||
**[公司名称] | Android工程师 | [入职时间] - [离职时间]**
|
||||
- 参与[应用名称]开发,负责UI层及业务逻辑实现。
|
||||
- 集成第三方SDK(如推送、地图、支付等)。
|
||||
- 解决内存泄漏、ANR等疑难问题,提升应用稳定性。
|
||||
|
||||
---
|
||||
|
||||
### **项目经验**
|
||||
**项目名称:[例如:智能家居控制App]**
|
||||
- **技术栈**:Kotlin、Jetpack、Retrofit、WebSocket
|
||||
- **项目描述**:一款支持设备联动、远程控制的IoT应用,用户量超50万。
|
||||
- **个人贡献**:
|
||||
1. 独立开发设备管理模块,实现蓝牙/WIFI双模连接。
|
||||
2. 引入协程优化异步任务,减少回调嵌套。
|
||||
3. 通过Profiler工具定位内存泄漏,优化后OOM率下降70%。
|
||||
|
||||
**项目名称:[例如:电商App性能优化]**
|
||||
- **技术栈**:Java、LeakCanary、Systrace
|
||||
- **项目描述**:针对现有电商App进行性能调优。
|
||||
- **个人贡献**:
|
||||
1. 使用Systrace分析UI渲染瓶颈,优化布局层级。
|
||||
2. 实现图片懒加载及缓存策略,列表滑动流畅度提升40%。
|
||||
|
||||
---
|
||||
|
||||
### **教育背景**
|
||||
[学校名称] | [专业] | [学历] | [毕业时间]
|
||||
|
||||
---
|
||||
|
||||
### **附加信息**
|
||||
- **证书/奖项**:[如Google开发者认证、技术竞赛奖项等]
|
||||
- **技术博客/开源项目**:[如有可附链接]
|
||||
- **语言能力**:英语(可阅读技术文档)
|
||||
|
||||
---
|
||||
|
||||
### **自我评价**
|
||||
- 对Android技术有强烈热情,持续关注新技术趋势(如Compose、KMM)。
|
||||
- 具备良好的沟通能力和团队协作精神,能快速适应高强度工作。
|
||||
|
||||
---
|
||||
|
||||
**使用建议**:
|
||||
1. 量化成果:用数据体现项目贡献(如“性能提升XX%”)。
|
||||
2. 突出重点:将核心技能和项目经验放在显眼位置。
|
||||
3. 定制化修改:根据目标公司业务调整技术栈和项目描述。
|
||||
|
||||
如果需要进一步优化或针对特定公司调整,请提供更多信息!
|
||||
57
docs/Obsidian笔记体系/Projects/saars开发/aiapply/未命名 6.md
Normal file
57
docs/Obsidian笔记体系/Projects/saars开发/aiapply/未命名 6.md
Normal file
@@ -0,0 +1,57 @@
|
||||
## 已完成的增强功能
|
||||
|
||||
### 1. 节点状态指示器(右上角)
|
||||
|
||||
- 执行中:蓝色圆形背景 + 旋转加载图标
|
||||
|
||||
- 执行成功:绿色圆形背景 + 对勾图标
|
||||
|
||||
- 执行失败:红色圆形背景 + 叉号图标
|
||||
|
||||
### 2. 增强的节点动画效果
|
||||
|
||||
- 执行中:脉冲动画 + 缩放动画(1.05 → 1.08)
|
||||
|
||||
- 执行成功:绿色闪烁动画
|
||||
|
||||
- 执行失败:红色抖动动画
|
||||
|
||||
### 3. 边的动画效果
|
||||
|
||||
- 连接到正在执行节点的边:蓝色高亮 + 流动动画(虚线流动)
|
||||
|
||||
- 连接到已执行节点的边:绿色高亮 + 实线
|
||||
|
||||
- 边的宽度和颜色会根据执行状态动态变化
|
||||
|
||||
### 4. 视觉反馈
|
||||
|
||||
- 执行中的节点:蓝色边框 + 发光效果 + 缩放动画
|
||||
|
||||
- 已完成的节点:绿色边框 + 阴影效果
|
||||
|
||||
- 失败的节点:红色边框 + 抖动动画
|
||||
|
||||
## 动画效果说明
|
||||
|
||||
- 旋转加载图标:执行中节点右上角显示旋转的加载圆圈
|
||||
|
||||
- 脉冲动画:执行中节点有呼吸式脉冲效果
|
||||
|
||||
- 缩放动画:执行中节点轻微放大(1.05 → 1.08)
|
||||
|
||||
- 边的流动:连接到执行中节点的边有虚线流动效果
|
||||
|
||||
- 状态图标:右上角圆形图标清晰显示节点状态
|
||||
|
||||
测试运行工作流时,可以直观看到:
|
||||
|
||||
- 哪个节点正在执行(蓝色高亮 + 旋转图标)
|
||||
|
||||
- 哪些节点已完成(绿色高亮 + 对勾图标)
|
||||
|
||||
- 哪些节点失败(红色高亮 + 叉号图标)
|
||||
|
||||
- 数据流向(边的流动动画)
|
||||
|
||||
所有功能已实现,代码已通过 lint 检查。可以开始测试。
|
||||
970
docs/Obsidian笔记体系/Projects/saars开发/aiapply/未命名 7.md
Normal file
970
docs/Obsidian笔记体系/Projects/saars开发/aiapply/未命名 7.md
Normal file
@@ -0,0 +1,970 @@
|
||||
# 创建Agent经验总结
|
||||
|
||||
|
||||
|
||||
## 📋 目录
|
||||
|
||||
|
||||
|
||||
1. [创建Agent的完整流程](#创建agent的完整流程)
|
||||
|
||||
2. [工作流设计经验](#工作流设计经验)
|
||||
|
||||
3. [节点配置要点](#节点配置要点)
|
||||
|
||||
4. [Prompt设计技巧](#prompt设计技巧)
|
||||
|
||||
5. [数据流转与上下文传递](#数据流转与上下文传递)
|
||||
|
||||
6. [常见问题和解决方案](#常见问题和解决方案)
|
||||
|
||||
7. [最佳实践](#最佳实践)
|
||||
|
||||
8. [实战案例](#实战案例)
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
## 创建Agent的完整流程
|
||||
|
||||
|
||||
|
||||
### 1. 准备工作
|
||||
|
||||
|
||||
|
||||
#### 1.1 明确Agent目标
|
||||
|
||||
- **功能定位**:确定Agent要解决什么问题
|
||||
|
||||
- **目标用户**:明确使用场景和用户群体
|
||||
|
||||
- **输出格式**:确定最终输出的格式(文本、JSON、Markdown等)
|
||||
|
||||
|
||||
|
||||
#### 1.2 设计工作流结构
|
||||
|
||||
- 绘制工作流流程图
|
||||
|
||||
- 确定节点类型和数量
|
||||
|
||||
- 规划数据流转路径
|
||||
|
||||
- 考虑分支和合并逻辑
|
||||
|
||||
|
||||
|
||||
#### 1.3 准备Prompt模板
|
||||
|
||||
- 为每个LLM节点准备详细的Prompt
|
||||
|
||||
- 考虑上下文传递和变量替换
|
||||
|
||||
- 明确输出格式要求
|
||||
|
||||
|
||||
|
||||
### 2. 编写生成脚本
|
||||
|
||||
|
||||
|
||||
#### 2.1 脚本结构模板
|
||||
|
||||
|
||||
|
||||
```python
|
||||
|
||||
#!/usr/bin/env python3
|
||||
|
||||
"""
|
||||
|
||||
生成[Agent名称]Agent
|
||||
|
||||
[Agent功能描述]
|
||||
|
||||
"""
|
||||
|
||||
import sys
|
||||
|
||||
import os
|
||||
|
||||
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
||||
|
||||
|
||||
|
||||
from sqlalchemy.orm import Session
|
||||
|
||||
from app.core.database import SessionLocal
|
||||
|
||||
from app.models.agent import Agent
|
||||
|
||||
from app.models.user import User
|
||||
|
||||
from datetime import datetime
|
||||
|
||||
import uuid
|
||||
|
||||
|
||||
|
||||
|
||||
def generate_xxx_agent(db: Session, username: str = "admin"):
|
||||
|
||||
"""生成[Agent名称]Agent"""
|
||||
|
||||
print("=" * 60)
|
||||
|
||||
print("生成[Agent名称]Agent")
|
||||
|
||||
print("=" * 60)
|
||||
|
||||
print()
|
||||
|
||||
# 1. 查找用户
|
||||
|
||||
user = db.query(User).filter(User.username == username).first()
|
||||
|
||||
if not user:
|
||||
|
||||
print(f"❌ 未找到用户 '{username}',请先创建该用户")
|
||||
|
||||
return
|
||||
|
||||
print(f"✅ 找到用户: {user.username} (ID: {user.id})")
|
||||
|
||||
print()
|
||||
|
||||
# 2. 创建工作流配置
|
||||
|
||||
nodes = []
|
||||
|
||||
edges = []
|
||||
|
||||
# 3. 添加节点
|
||||
|
||||
# ... 节点配置 ...
|
||||
|
||||
# 4. 添加连接
|
||||
|
||||
# ... 边配置 ...
|
||||
|
||||
# 5. 创建或更新Agent
|
||||
|
||||
workflow_config = {
|
||||
|
||||
"nodes": nodes,
|
||||
|
||||
"edges": edges
|
||||
|
||||
}
|
||||
|
||||
agent = db.query(Agent).filter(
|
||||
|
||||
Agent.name == "[Agent名称]",
|
||||
|
||||
Agent.user_id == user.id
|
||||
|
||||
).first()
|
||||
|
||||
if agent:
|
||||
|
||||
# 更新现有Agent
|
||||
|
||||
agent.workflow_config = workflow_config
|
||||
|
||||
agent.updated_at = datetime.now()
|
||||
|
||||
agent.status = "published" # 设置为已发布
|
||||
|
||||
print("⚠️ Agent已存在,将更新它...")
|
||||
|
||||
else:
|
||||
|
||||
# 创建新Agent
|
||||
|
||||
agent = Agent(
|
||||
|
||||
id=str(uuid.uuid4()),
|
||||
|
||||
name="[Agent名称]",
|
||||
|
||||
description="[Agent描述]",
|
||||
|
||||
workflow_config=workflow_config,
|
||||
|
||||
status="published", # 直接设置为已发布,可立即使用
|
||||
|
||||
user_id=user.id,
|
||||
|
||||
version=1
|
||||
|
||||
)
|
||||
|
||||
db.add(agent)
|
||||
|
||||
# 6. 提交并输出结果
|
||||
|
||||
try:
|
||||
|
||||
db.commit()
|
||||
|
||||
db.refresh(agent)
|
||||
|
||||
print("✅ Agent创建/更新成功!")
|
||||
|
||||
print(f" - ID: {agent.id}")
|
||||
|
||||
print(f" - 状态: {agent.status}")
|
||||
|
||||
return agent
|
||||
|
||||
except Exception as e:
|
||||
|
||||
db.rollback()
|
||||
|
||||
print(f"❌ 创建Agent失败: {str(e)}")
|
||||
|
||||
return None
|
||||
|
||||
|
||||
|
||||
|
||||
def main():
|
||||
|
||||
"""主函数"""
|
||||
|
||||
db = SessionLocal()
|
||||
|
||||
try:
|
||||
|
||||
generate_xxx_agent(db, username="admin")
|
||||
|
||||
finally:
|
||||
|
||||
db.close()
|
||||
|
||||
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
main()
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
### 3. 执行脚本
|
||||
|
||||
|
||||
|
||||
```bash
|
||||
|
||||
# 1. 添加执行权限
|
||||
|
||||
chmod +x backend/scripts/generate_xxx_agent.py
|
||||
|
||||
|
||||
|
||||
# 2. 运行脚本
|
||||
|
||||
python3 backend/scripts/generate_xxx_agent.py
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
### 4. 验证和测试
|
||||
|
||||
|
||||
|
||||
- 在Agent管理页面查看创建的Agent
|
||||
|
||||
- 使用"使用"按钮测试Agent功能
|
||||
|
||||
- 根据测试结果调整Prompt和工作流
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
## 工作流设计经验
|
||||
|
||||
|
||||
|
||||
### 1. 常见工作流模式
|
||||
|
||||
|
||||
|
||||
#### 模式1:线性流程
|
||||
|
||||
```
|
||||
|
||||
开始 → 处理1 → 处理2 → 处理3 → 结束
|
||||
|
||||
```
|
||||
|
||||
**适用场景**:简单的顺序处理任务
|
||||
|
||||
|
||||
|
||||
#### 模式2:分支流程
|
||||
|
||||
```
|
||||
|
||||
开始 → 分析 → 条件判断 → [分支A | 分支B] → 整合 → 结束
|
||||
|
||||
```
|
||||
|
||||
**适用场景**:需要根据条件选择不同处理路径
|
||||
|
||||
|
||||
|
||||
#### 模式3:并行处理
|
||||
|
||||
```
|
||||
|
||||
开始 → 分析 → [处理A | 处理B | 处理C] → 整合 → 结束
|
||||
|
||||
```
|
||||
|
||||
**适用场景**:多个独立任务可以并行执行
|
||||
|
||||
|
||||
|
||||
#### 模式4:循环处理
|
||||
|
||||
```
|
||||
|
||||
开始 → 循环开始 → 处理 → 条件判断 → [继续循环 | 退出] → 结束
|
||||
|
||||
```
|
||||
|
||||
**适用场景**:需要重复处理的数据
|
||||
|
||||
|
||||
|
||||
### 2. 节点布局建议
|
||||
|
||||
|
||||
|
||||
#### 2.1 位置规划
|
||||
|
||||
- **X轴间距**:建议200-250像素,确保节点不重叠
|
||||
|
||||
- **Y轴间距**:分支节点建议100-150像素
|
||||
|
||||
- **起始位置**:开始节点建议 (50, 300-400)
|
||||
|
||||
|
||||
|
||||
#### 2.2 布局示例
|
||||
|
||||
```python
|
||||
|
||||
# 线性布局
|
||||
|
||||
start_node = {"position": {"x": 50, "y": 400}}
|
||||
|
||||
node1 = {"position": {"x": 250, "y": 400}}
|
||||
|
||||
node2 = {"position": {"x": 450, "y": 400}}
|
||||
|
||||
|
||||
|
||||
# 分支布局
|
||||
|
||||
condition_node = {"position": {"x": 450, "y": 400}}
|
||||
|
||||
branch_true = {"position": {"x": 650, "y": 300}} # 上分支
|
||||
|
||||
branch_false = {"position": {"x": 650, "y": 500}} # 下分支
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
### 3. 工作流设计原则
|
||||
|
||||
|
||||
|
||||
#### 3.1 单一职责原则
|
||||
|
||||
- 每个节点只负责一个明确的任务
|
||||
|
||||
- 避免在一个节点中做太多事情
|
||||
|
||||
|
||||
|
||||
#### 3.2 数据流清晰
|
||||
|
||||
- 明确每个节点的输入和输出
|
||||
|
||||
- 使用Transform节点整理数据
|
||||
|
||||
- 避免数据丢失或混乱
|
||||
|
||||
|
||||
|
||||
#### 3.3 错误处理
|
||||
|
||||
- 考虑异常情况的处理
|
||||
|
||||
- 提供默认分支
|
||||
|
||||
- 添加错误提示节点(可选)
|
||||
|
||||
|
||||
|
||||
#### 3.4 可扩展性
|
||||
|
||||
- 预留扩展点
|
||||
|
||||
- 使用条件节点支持多种场景
|
||||
|
||||
- 保持工作流的灵活性
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
## 节点配置要点
|
||||
|
||||
|
||||
|
||||
### 1. 开始节点 (start)
|
||||
|
||||
|
||||
|
||||
```python
|
||||
|
||||
start_node = {
|
||||
|
||||
"id": "start-1", # 唯一ID,建议使用 start-1, start-2 等
|
||||
|
||||
"type": "start",
|
||||
|
||||
"position": {"x": 50, "y": 400},
|
||||
|
||||
"data": {
|
||||
|
||||
"label": "开始",
|
||||
|
||||
"output_format": "json" # 可选:json 或 text
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
**要点**:
|
||||
|
||||
- ID必须唯一
|
||||
|
||||
- `output_format` 决定后续节点如何接收数据
|
||||
|
||||
|
||||
|
||||
### 2. LLM节点 (llm)
|
||||
|
||||
|
||||
|
||||
```python
|
||||
|
||||
llm_node = {
|
||||
|
||||
"id": "llm-xxx",
|
||||
|
||||
"type": "llm",
|
||||
|
||||
"position": {"x": 250, "y": 400},
|
||||
|
||||
"data": {
|
||||
|
||||
"label": "节点名称",
|
||||
|
||||
"provider": "deepseek", # 或 "openai"
|
||||
|
||||
"model": "deepseek-chat", # 模型名称
|
||||
|
||||
"temperature": "0.3", # 温度参数,字符串格式
|
||||
|
||||
"max_tokens": "2000", # 最大token数,字符串格式
|
||||
|
||||
"prompt": """你的Prompt内容
|
||||
|
||||
使用 {{variable}} 引用变量
|
||||
|
||||
使用 {{query}} 引用用户输入
|
||||
|
||||
使用 {{output}} 引用上一个节点的输出"""
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
**要点**:
|
||||
|
||||
- `temperature` 和 `max_tokens` 必须是字符串
|
||||
|
||||
- Prompt中使用 `{{variable}}` 进行变量替换
|
||||
|
||||
- 明确指定输出格式要求(JSON、Markdown等)
|
||||
|
||||
|
||||
|
||||
### 3. 条件节点 (condition)
|
||||
|
||||
|
||||
|
||||
```python
|
||||
|
||||
condition_node = {
|
||||
|
||||
"id": "condition-xxx",
|
||||
|
||||
"type": "condition",
|
||||
|
||||
"position": {"x": 450, "y": 400},
|
||||
|
||||
"data": {
|
||||
|
||||
"label": "条件判断",
|
||||
|
||||
"condition": "{variable} contains '关键词' or {variable} contains '另一个关键词'"
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
**要点**:
|
||||
|
||||
- 条件表达式使用 `{variable}` 引用变量
|
||||
|
||||
- 支持 `contains`、`==`、`!=` 等操作符
|
||||
|
||||
- 支持 `and`、`or` 逻辑运算符
|
||||
|
||||
- 连接边需要指定 `sourceHandle`:`"true"` 或 `"false"`
|
||||
|
||||
|
||||
|
||||
### 4. Transform节点 (transform)
|
||||
|
||||
|
||||
|
||||
```python
|
||||
|
||||
transform_node = {
|
||||
|
||||
"id": "transform-xxx",
|
||||
|
||||
"type": "transform",
|
||||
|
||||
"position": {"x": 650, "y": 400},
|
||||
|
||||
"data": {
|
||||
|
||||
"label": "数据转换",
|
||||
|
||||
"mode": "merge", # 或 "replace"、"extract"
|
||||
|
||||
"mapping": {
|
||||
|
||||
"key1": "{{variable1}}",
|
||||
|
||||
"key2": "{{variable2}}",
|
||||
|
||||
"key3": "{{output}}"
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
**要点**:
|
||||
|
||||
- `mode: "merge"` 用于合并多个数据源
|
||||
|
||||
- `mode: "replace"` 用于替换整个数据
|
||||
|
||||
- `mode: "extract"` 用于提取特定字段
|
||||
|
||||
- 使用 `{{variable}}` 引用变量
|
||||
|
||||
|
||||
|
||||
### 5. 结束节点 (end)
|
||||
|
||||
|
||||
|
||||
```python
|
||||
|
||||
end_node = {
|
||||
|
||||
"id": "end-1",
|
||||
|
||||
"type": "end",
|
||||
|
||||
"position": {"x": 1450, "y": 400},
|
||||
|
||||
"data": {
|
||||
|
||||
"label": "结束",
|
||||
|
||||
"description": "返回最终结果"
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
**要点**:
|
||||
|
||||
- 结束节点会返回最终输出
|
||||
|
||||
- 可以设置 `output_format` 控制输出格式
|
||||
|
||||
|
||||
|
||||
### 6. 连接边 (edges)
|
||||
|
||||
|
||||
|
||||
```python
|
||||
|
||||
# 普通连接
|
||||
|
||||
edge = {
|
||||
|
||||
"id": "e1", # 唯一ID
|
||||
|
||||
"source": "start-1", # 源节点ID
|
||||
|
||||
"target": "llm-xxx" # 目标节点ID
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
# 条件分支连接
|
||||
|
||||
edge_true = {
|
||||
|
||||
"id": "e2-true",
|
||||
|
||||
"source": "condition-xxx",
|
||||
|
||||
"target": "branch-true",
|
||||
|
||||
"sourceHandle": "true" # true分支
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
edge_false = {
|
||||
|
||||
"id": "e2-false",
|
||||
|
||||
"source": "condition-xxx",
|
||||
|
||||
"target": "branch-false",
|
||||
|
||||
"sourceHandle": "false" # false分支
|
||||
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
**要点**:
|
||||
|
||||
- 每个边必须有唯一的ID
|
||||
|
||||
- 条件节点的分支必须指定 `sourceHandle`
|
||||
|
||||
- 确保所有节点都有正确的连接
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
## Prompt设计技巧
|
||||
|
||||
|
||||
|
||||
### 1. Prompt结构
|
||||
|
||||
|
||||
|
||||
#### 1.1 角色定位
|
||||
|
||||
```
|
||||
|
||||
你是一个专业的[角色],请[任务描述]。
|
||||
|
||||
```
|
||||
|
||||
**示例**:
|
||||
|
||||
```
|
||||
|
||||
你是一个专业的Android开发顾问。请分析用户的需求,提取关键信息。
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
#### 1.2 任务说明
|
||||
|
||||
- 明确任务目标
|
||||
|
||||
- 列出具体要求
|
||||
|
||||
- 提供输出格式示例
|
||||
|
||||
|
||||
|
||||
#### 1.3 上下文信息
|
||||
|
||||
```
|
||||
|
||||
用户需求:{{query}}
|
||||
|
||||
需求分析结果:{{requirement_analysis}}
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
#### 1.4 输出要求
|
||||
|
||||
```
|
||||
|
||||
请以JSON格式输出分析结果:
|
||||
|
||||
{
|
||||
|
||||
"key1": "value1",
|
||||
|
||||
"key2": "value2"
|
||||
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
### 2. 变量使用
|
||||
|
||||
|
||||
|
||||
#### 2.1 常用变量
|
||||
|
||||
- `{{query}}` - 用户原始输入
|
||||
|
||||
- `{{user_query}}` - 用户查询(可能经过处理)
|
||||
|
||||
- `{{output}}` - 上一个节点的输出
|
||||
|
||||
- `{{variable_name}}` - 自定义变量(通过Transform节点传递)
|
||||
|
||||
|
||||
|
||||
#### 2.2 变量引用示例
|
||||
|
||||
```python
|
||||
|
||||
"prompt": """用户需求:{{query}}
|
||||
|
||||
需求分析:{{requirement_analysis}}
|
||||
|
||||
请根据以上信息生成代码。"""
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
### 3. 输出格式控制
|
||||
|
||||
|
||||
|
||||
#### 3.1 JSON格式
|
||||
|
||||
```
|
||||
|
||||
请以JSON格式输出:
|
||||
|
||||
{
|
||||
|
||||
"field1": "value1",
|
||||
|
||||
"field2": ["item1", "item2"]
|
||||
|
||||
}
|
||||
|
||||
请确保输出是有效的JSON格式。
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
#### 3.2 Markdown格式
|
||||
|
||||
```
|
||||
|
||||
请以Markdown格式输出,包含:
|
||||
|
||||
1. 标题
|
||||
|
||||
2. 代码块(使用正确的语言标识)
|
||||
|
||||
3. 列表
|
||||
|
||||
4. 表格(如需要)
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
#### 3.3 纯文本格式
|
||||
|
||||
```
|
||||
|
||||
请直接输出优化后的完整内容(纯文本格式)。
|
||||
|
||||
不要包含JSON格式或其他包装。
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
### 4. 温度参数选择
|
||||
|
||||
|
||||
|
||||
| 场景 | Temperature | 说明 |
|
||||
|
||||
|------|------------|------|
|
||||
|
||||
| 代码生成 | 0.2-0.3 | 需要准确、一致的输出 |
|
||||
|
||||
| 需求分析 | 0.3-0.5 | 需要平衡准确性和灵活性 |
|
||||
|
||||
| 创意内容 | 0.7-0.9 | 需要多样性和创造性 |
|
||||
|
||||
| 格式化输出 | 0.1-0.2 | 需要严格按照格式要求 |
|
||||
|
||||
|
||||
|
||||
### 5. Token限制
|
||||
|
||||
|
||||
|
||||
| 任务类型 | Max Tokens | 说明 |
|
||||
|
||||
|---------|-----------|------|
|
||||
|
||||
| 简单分析 | 1000-2000 | 简短的分析和提取 |
|
||||
|
||||
| 代码生成 | 3000-4000 | 完整的代码文件 |
|
||||
|
||||
| 长文档生成 | 4000-8000 | 长篇文章或文档 |
|
||||
|
||||
| 格式化输出 | 2000-4000 | 整理和格式化内容 |
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
## 数据流转与上下文传递
|
||||
|
||||
|
||||
|
||||
### 1. 数据流转路径
|
||||
|
||||
|
||||
|
||||
```
|
||||
|
||||
开始节点 → LLM节点 → Transform节点 → 条件节点 → LLM节点 → 结束节点
|
||||
|
||||
↓ ↓ ↓ ↓ ↓ ↓
|
||||
|
||||
query output merged_data condition solution final_output
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
### 2. 上下文传递策略
|
||||
|
||||
|
||||
|
||||
#### 2.1 使用Transform节点合并数据
|
||||
|
||||
```python
|
||||
|
||||
transform_node = {
|
||||
|
||||
"data": {
|
||||
|
||||
"mode": "merge",
|
||||
|
||||
"mapping": {
|
||||
|
||||
"user_query": "{{query}}", # 保留原始输入
|
||||
|
||||
"analysis": "{{output}}", # 保留分析结果
|
||||
|
||||
"context": "{{previous_output}}" # 保留上下文
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
||||
|
||||
#### 2.2 在Prompt中传递上下文
|
||||
|
||||
```python
|
||||
|
||||
"prompt": """用户原始需求:{{user_query}}
|
||||
|
||||
需求分析结果:{{r
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,97 @@
|
||||
## 1. 概述
|
||||
本方案旨在设计一个完整、高效且用户体验良好的电商系统订单处理流程。该流程覆盖从用户下单开始,经过支付、订单处理、商品发货,直至售后服务的全生命周期,确保业务顺畅运行并提升客户满意度。
|
||||
|
||||
## 2. 核心流程设计
|
||||
|
||||
### 2.1 下单环节
|
||||
用户完成商品选择并提交购买意向,系统生成初始订单。
|
||||
**关键步骤:**
|
||||
1. **购物车/立即购买**:用户通过购物车批量结算或对单个商品立即购买。
|
||||
2. **订单确认页**:
|
||||
* 展示商品清单、单价、总价、优惠信息(促销、优惠券)、运费。
|
||||
* 填写/选择收货地址、联系人信息。
|
||||
* 选择配送方式(快递、自提等)与时间。
|
||||
* 选择支付方式(在线支付、货到付款等)。
|
||||
* 添加订单备注(可选)。
|
||||
3. **提交订单**:用户点击“提交订单”,系统进行库存预扣减(防止超卖),生成待支付订单,并跳转至支付环节。
|
||||
|
||||
**实施建议:**
|
||||
* **库存预扣**:采用预扣库存机制,支付成功后再转为实际占用,支付超时未完成则释放预扣库存。
|
||||
* **数据验证**:提交前需对地址有效性、库存充足性进行实时校验。
|
||||
* **订单号生成**:生成全局唯一、具有业务意义的订单号(如包含日期、类型等)。
|
||||
|
||||
### 2.2 支付环节
|
||||
用户完成支付,系统确认收款,订单状态更新。
|
||||
**关键步骤:**
|
||||
1. **支付引导**:跳转至支付网关或展示支付二维码。
|
||||
2. **支付执行**:用户通过所选支付方式(如支付宝、微信支付、银行卡、余额支付)完成付款。
|
||||
3. **支付回调与验签**:
|
||||
* 支付平台异步通知系统支付结果。
|
||||
* 系统必须进行回调验证(验证签名、金额、订单号),防止伪造通知。
|
||||
4. **订单状态更新**:支付验证成功后,订单状态由“待支付”变更为“待发货”或“支付成功”,并记录支付流水号、支付时间。
|
||||
5. **支付失败处理**:若支付失败或超时,订单保持“待支付”状态,用户可在订单列表重新发起支付或取消订单。
|
||||
|
||||
**实施建议:**
|
||||
* **异步通知与主动查询结合**:依赖回调通知,同时设置定时任务主动向支付平台查询未知状态的订单,确保状态最终一致性。
|
||||
* **对账机制**:每日与支付渠道进行对账,及时发现并处理异常订单(如已支付未成功更新状态)。
|
||||
* **支付方式管理**:后台可灵活配置启用/禁用支付方式。
|
||||
|
||||
### 2.3 发货环节
|
||||
商家处理订单,打包商品并交付给物流,用户可追踪物流。
|
||||
**关键步骤:**
|
||||
1. **订单审核与打单**:后台对“待发货”订单进行审核(如风控审核、地址校验),审核通过后打印发货单、快递单。
|
||||
2. **仓库拣货与打包**:仓库根据发货单进行拣货、质检、打包,并粘贴快递单。
|
||||
3. **发货出库**:
|
||||
* 扫描快递单号,在系统中执行“发货”操作。
|
||||
* 系统更新订单状态为“已发货”,并记录物流公司、运单号、发货时间。
|
||||
* 系统通知用户已发货(如通过APP推送、短信)。
|
||||
4. **物流同步与追踪**:系统通过物流公司API同步物流轨迹,并在用户订单详情页展示。支持用户实时查看包裹位置。
|
||||
|
||||
**实施建议:**
|
||||
* **与WMS集成**:订单系统与仓库管理系统(WMS)深度集成,实现高效准确的库存管理和发货作业。
|
||||
* **电子面单**:采用电子面单API,直接获取运单号并打印,提升效率。
|
||||
* **异常物流监控**:设置规则监控物流长时间无更新、派送失败等异常情况,触发人工介入。
|
||||
|
||||
### 2.4 售后环节
|
||||
处理用户的退货、换货、退款及投诉咨询。
|
||||
**关键流程:**
|
||||
1. **售后申请入口**:用户在“已收货”的订单中,针对特定商品发起售后申请(退货、换货、仅退款)。
|
||||
2. **申请提交**:用户选择售后类型、原因,上传凭证(照片、视频),说明问题。
|
||||
3. **商家审核**:商家后台查看申请与凭证,做出审核决定(同意、拒绝、需补充材料)。
|
||||
* **同意退款**:若商品未发货,直接退款至原支付账户;若已发货/收货,需用户寄回商品,商家确认收货后执行退款。
|
||||
* **同意换货**:流程同退货后再重新发货,或直接寄送新商品。
|
||||
* **拒绝**:需说明拒绝理由。
|
||||
4. **退货物流**(如适用):商家提供退货地址,用户寄回商品并填写退货运单号。
|
||||
5. **商家收货质检**:商家收到退货商品后,进行质检,确认是否符合退款/换货条件。
|
||||
6. **执行售后操作**:
|
||||
* **退款**:系统调用支付接口原路退款,更新订单售后状态为“已完成”,通知用户。
|
||||
* **换货**:生成新的换货订单(或发货单),重新进入发货流程。
|
||||
7. **纠纷与客服介入**:若用户对商家处理结果不满,可申请平台客服介入调解。
|
||||
|
||||
**实施建议:**
|
||||
* **清晰的售后政策**:在用户申请页明确展示各类售后(如7天无理由退货)的条件、时限、运费责任。
|
||||
* **自动化流程**:对于符合“7天无理由”等明确规则的申请,可设置自动审核通过,提升效率。
|
||||
* **退款原路返回**:退款原则上按支付路径原路返回,提升资金安全与用户体验。
|
||||
* **售后状态通知**:关键节点(审核通过、退货地址提供、退款成功)及时通知用户。
|
||||
|
||||
## 3. 核心状态流转图
|
||||
```
|
||||
待支付 --(支付成功)--> 待发货 --(商家发货)--> 已发货 --(用户确认收货/系统自动确认)--> 交易完成
|
||||
| | |
|
||||
|--(支付超时/取消)--> 已取消 |--(用户申请售后)--> 售后中 --(售后完成)--> 交易关闭
|
||||
|
|
||||
|--(售后拒绝)--> 交易完成
|
||||
```
|
||||
|
||||
## 4. 关键系统支撑与优化建议
|
||||
|
||||
* **订单中心**:作为核心模块,统一管理订单信息、状态、商品快照、操作日志。
|
||||
* **库存中心**:实现精准的库存管理(总库存、可用库存、预扣库存、在途库存),支持秒杀等高并发场景。
|
||||
* **支付中心**:统一对接各支付渠道,处理支付、退款、对账,保证资金安全与数据一致性。
|
||||
* **物流中心**:统一对接物流公司API,实现单号获取、轨迹查询、运费计算。
|
||||
* **风控系统**:在提交订单、支付等环节进行风险识别(如刷单、欺诈地址)。
|
||||
* **消息中心**:通过多种渠道(站内信、短信、APP推送、微信模板消息)向用户发送订单状态变更通知。
|
||||
* **数据监控与报表**:监控订单各环节转化率、异常订单比例、售后率等关键指标,用于业务决策与流程优化。
|
||||
|
||||
## 5. 总结
|
||||
本方案设计了一个闭环的电商订单处理流程,强调了各环节的衔接、异常处理以及系统化支撑。实施时应根据具体业务规模和发展阶段,优先保证核心流程的稳定与高效,再逐步完善自动化、智能化功能,以提升整体运营效率和用户体验。
|
||||
@@ -0,0 +1,115 @@
|
||||
这两个参数用于控制 LLM 的生成行为:
|
||||
|
||||
## 温度(Temperature)
|
||||
|
||||
含义:控制输出的随机性和创造性
|
||||
|
||||
取值范围:通常是 0.0 到 2.0(或更高)
|
||||
|
||||
作用:
|
||||
|
||||
- 低温度(0.0-0.3):
|
||||
|
||||
- 输出更确定、一致
|
||||
|
||||
- 更倾向于选择概率最高的词
|
||||
|
||||
- 适合:事实问答、代码生成、翻译等需要准确性的任务
|
||||
|
||||
- 示例:Temperature = 0.1 → 回答更稳定、可预测
|
||||
|
||||
- 中等温度(0.5-0.7):
|
||||
|
||||
- 平衡确定性和创造性
|
||||
|
||||
- 适合:一般对话、内容创作
|
||||
|
||||
- 示例:Temperature = 0.5(当前配置)→ 平衡选择
|
||||
|
||||
- 高温度(0.8-2.0):
|
||||
|
||||
- 输出更随机、多样
|
||||
|
||||
- 更可能选择概率较低的词
|
||||
|
||||
- 适合:创意写作、头脑风暴等需要多样性的任务
|
||||
|
||||
- 示例:Temperature = 1.0 → 回答更多样、有创意
|
||||
|
||||
建议:
|
||||
|
||||
- 当前配置 0.5 适合大多数场景
|
||||
|
||||
- 需要更准确时降到 0.2-0.3
|
||||
|
||||
- 需要更多样性时提高到 0.7-0.9
|
||||
|
||||
## 最大Token数(Max Tokens)
|
||||
|
||||
含义:限制 LLM 生成文本的最大长度
|
||||
|
||||
单位:Token(约等于 0.75 个英文单词,或 1-2 个中文字符)
|
||||
|
||||
作用:
|
||||
|
||||
- 控制回答的最大长度
|
||||
|
||||
- 防止生成过长内容
|
||||
|
||||
- 影响 API 调用成本(通常按 Token 计费)
|
||||
|
||||
当前配置 1500 的含义:
|
||||
|
||||
- 约等于 1000-1500 个英文单词
|
||||
|
||||
- 或约 750-1500 个中文字符
|
||||
|
||||
- 适合:中等长度的回答
|
||||
|
||||
建议:
|
||||
|
||||
- 简短回答:500-800 tokens(快速问答)
|
||||
|
||||
- 中等回答:1000-1500 tokens(当前配置,适合大多数场景)
|
||||
|
||||
- 长回答:2000-4000 tokens(详细分析、长文章)
|
||||
|
||||
- 超长内容:4000+ tokens(需要分段处理)
|
||||
|
||||
## 实际应用示例
|
||||
|
||||
场景1:快速问答
|
||||
|
||||
Temperature: 0.2
|
||||
|
||||
Max Tokens: 500
|
||||
|
||||
→ 简短、准确的回答
|
||||
|
||||
场景2:创意写作
|
||||
|
||||
Temperature: 0.8
|
||||
|
||||
Max Tokens: 2000
|
||||
|
||||
→ 多样、有创意的长文本
|
||||
|
||||
场景3:代码生成
|
||||
|
||||
Temperature: 0.1
|
||||
|
||||
Max Tokens: 1500
|
||||
|
||||
→ 准确、一致的代码
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. Temperature 过高:可能产生不相关或混乱的输出
|
||||
|
||||
2. Temperature 过低:可能过于保守,缺乏变化
|
||||
|
||||
3. Max Tokens 过小:回答可能被截断
|
||||
|
||||
4. Max Tokens 过大:可能生成不必要的内容,增加成本
|
||||
|
||||
当前配置(Temperature: 0.5, Max Tokens: 1500)适合大多数对话场景。如需调整,可根据具体任务修改。
|
||||
183
docs/Obsidian笔记体系/Projects/saars开发/aiapply/项目低代码智能体功能扩展.md
Normal file
183
docs/Obsidian笔记体系/Projects/saars开发/aiapply/项目低代码智能体功能扩展.md
Normal file
@@ -0,0 +1,183 @@
|
||||
项目低代码智能体功能扩展
|
||||
|
||||
该项目可扩展低代码快速搭建智能体的功能吗
|
||||
|
||||
检查项目结构,评估是否可扩展低代码快速搭建智能体的功能。
|
||||
|
||||
继续查看项目架构,评估是否可扩展低代码智能体搭建功能。
|
||||
|
||||
查看 API 路由和核心组件,评估扩展能力:
|
||||
|
||||
基于对项目的分析,评估如下:
|
||||
|
||||
## 项目扩展低代码智能体搭建的可行性评估
|
||||
|
||||
### 当前项目优势
|
||||
|
||||
1. 模板系统
|
||||
|
||||
- 结构化模板(角色、任务、上下文、约束)
|
||||
|
||||
- 变量系统(文本、选择、数字、布尔等)
|
||||
|
||||
- 模板管理和分享
|
||||
|
||||
1. 多模型支持
|
||||
|
||||
- 支持 OpenAI、Anthropic、DeepSeek
|
||||
|
||||
- 单模型和批量测试
|
||||
|
||||
1. 部署能力
|
||||
|
||||
- 代码生成(Python、JavaScript、TypeScript)
|
||||
|
||||
- 多框架支持(FastAPI、Express 等)
|
||||
|
||||
1. 用户系统
|
||||
|
||||
- 认证、权限、模板归属
|
||||
|
||||
### 需要扩展的核心功能
|
||||
|
||||
文档中提到了“提示词链”概念,但尚未实现。要支持低代码智能体搭建,需要添加:
|
||||
|
||||
#### 1. 工作流编排系统
|
||||
|
||||
- 将多个模板串联成工作流
|
||||
|
||||
- 节点连接(顺序、并行、条件分支)
|
||||
|
||||
- 数据流转(上一步输出作为下一步输入)
|
||||
|
||||
#### 2. 可视化工作流编辑器
|
||||
|
||||
- 拖拽式节点编辑器
|
||||
|
||||
- 节点类型:模板节点、条件节点、工具节点、数据节点
|
||||
|
||||
- 连线表示数据流
|
||||
|
||||
#### 3. 智能体运行时引擎
|
||||
|
||||
- 工作流执行引擎
|
||||
|
||||
- 状态管理(持久化、恢复)
|
||||
|
||||
- 错误处理和重试
|
||||
|
||||
#### 4. 工具集成能力
|
||||
|
||||
- 外部 API 调用
|
||||
|
||||
- 数据库操作
|
||||
|
||||
- 文件处理
|
||||
|
||||
- 定时任务
|
||||
|
||||
#### 5. 触发器系统
|
||||
|
||||
- Webhook 触发
|
||||
|
||||
- 定时触发
|
||||
|
||||
- 事件触发
|
||||
|
||||
- 手动触发
|
||||
|
||||
### 实现建议
|
||||
|
||||
基于现有架构,建议按以下步骤扩展:
|
||||
|
||||
#### 阶段一:工作流基础(核心)
|
||||
|
||||
1. 数据库扩展:添加工作流表、节点表、连接表
|
||||
|
||||
2. 工作流 API:创建、执行、管理
|
||||
|
||||
3. 简单执行引擎:顺序执行多个模板
|
||||
|
||||
#### 阶段二:可视化编辑器
|
||||
|
||||
1. 使用 React Flow 或类似库
|
||||
|
||||
2. 节点组件:模板节点、条件节点
|
||||
|
||||
3. 连线与数据映射
|
||||
|
||||
#### 阶段三:高级功能
|
||||
|
||||
1. 条件分支与循环
|
||||
|
||||
2. 工具集成(API、数据库)
|
||||
|
||||
3. 触发器系统
|
||||
|
||||
### 技术实现路径
|
||||
|
||||
// 1. 扩展数据库模型(Prisma Schema)
|
||||
|
||||
model Workflow {
|
||||
|
||||
id String @id @default(cuid())
|
||||
|
||||
name String
|
||||
|
||||
description String?
|
||||
|
||||
nodes WorkflowNode[]
|
||||
|
||||
edges WorkflowEdge[]
|
||||
|
||||
authorId String
|
||||
|
||||
// ...
|
||||
|
||||
}
|
||||
|
||||
model WorkflowNode {
|
||||
|
||||
id String @id @default(cuid())
|
||||
|
||||
workflowId String
|
||||
|
||||
type String // 'template' | 'condition' | 'tool' | 'data'
|
||||
|
||||
templateId String? // 如果是模板节点
|
||||
|
||||
config String // JSON 配置
|
||||
|
||||
// ...
|
||||
|
||||
}
|
||||
|
||||
// 2. 工作流执行引擎
|
||||
|
||||
class WorkflowEngine {
|
||||
|
||||
async execute(workflowId: string, input: any) {
|
||||
|
||||
// 执行工作流逻辑
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
### 结论
|
||||
|
||||
- 可行性:高。项目具备良好基础,架构清晰,易于扩展。
|
||||
|
||||
- 工作量:中等。核心工作流功能约 2-3 周,完整低代码平台约 2-3 个月。
|
||||
|
||||
- 建议:先实现工作流编排和执行引擎,再逐步添加可视化编辑器和高级功能。
|
||||
|
||||
需要我帮你开始实现工作流系统吗?我可以:
|
||||
|
||||
1. 设计数据库模型
|
||||
|
||||
2. 创建工作流 API
|
||||
|
||||
3. 实现基础执行引擎
|
||||
|
||||
4. 构建可视化编辑器界面
|
||||
@@ -9,6 +9,10 @@ C:\Users\86181\AppData\Local\Android\Sdk\build-tools\35.0.0
|
||||
检验签名:apksigner verify -v --print-certs app-debug.apk
|
||||
apksigner verify -v --print-certs app-release.apk
|
||||
|
||||
|
||||
|
||||
|
||||
apksigner sign --ks keystore2 com.xiaomi.appstore.appclaim.signature.verification.apk
|
||||
# 知你的签名信息
|
||||
C:\Users\86181\AppData\Local\Android\Sdk\build-tools\35.0.0>apksigner verify -v --print-certs app-release.apk
|
||||
Verifies
|
||||
|
||||
18
mkdocs.yml
18
mkdocs.yml
@@ -187,6 +187,24 @@ nav:
|
||||
- Obsidian笔记体系/Daily/2026-01-15.md
|
||||
- Obsidian笔记体系/Projects/saars开发/aiapply/未命名 1.md
|
||||
- Obsidian笔记体系/Projects/saars开发/aiapply/未命名.md
|
||||
- Obsidian笔记体系/Daily/2026-01-20.md
|
||||
- Obsidian笔记体系/Projects/saars开发/aiapply/# 工作流和Agent平台架构方案分析.md
|
||||
- Obsidian笔记体系/Projects/saars开发/aiapply/Agent和模板节点的区别.md
|
||||
- Obsidian笔记体系/Projects/saars开发/aiapply/android应用agent.md
|
||||
- Obsidian笔记体系/Projects/saars开发/aiapply/内容生成助手Agent.md
|
||||
- Obsidian笔记体系/Projects/saars开发/aiapply/工作流和Agent平台提示词目录.md
|
||||
- Obsidian笔记体系/Projects/saars开发/aiapply/工作流测试工具.md
|
||||
- Obsidian笔记体系/Projects/saars开发/aiapply/工作流(Workflow)vs Agent(智能体)的区别.md
|
||||
- Obsidian笔记体系/Projects/saars开发/aiapply/智能需求分析与解决方案生成器_使用说明.md
|
||||
- Obsidian笔记体系/Projects/saars开发/aiapply/未命名 2.md
|
||||
- Obsidian笔记体系/Projects/saars开发/aiapply/未命名 3.md
|
||||
- Obsidian笔记体系/Projects/saars开发/aiapply/未命名 4.md
|
||||
- Obsidian笔记体系/Projects/saars开发/aiapply/未命名 5.md
|
||||
- Obsidian笔记体系/Projects/saars开发/aiapply/未命名 6.md
|
||||
- Obsidian笔记体系/Projects/saars开发/aiapply/未命名 7.md
|
||||
- Obsidian笔记体系/Projects/saars开发/aiapply/电商系统用户订单处理流程设计方案.md
|
||||
- Obsidian笔记体系/Projects/saars开发/aiapply/节点配置中的温度和最大Token数是什么意思?.md
|
||||
- Obsidian笔记体系/Projects/saars开发/aiapply/项目低代码智能体功能扩展.md
|
||||
- gerrit:
|
||||
- gerrit/gerrit上传代码详细指南.md
|
||||
- gerrit/gerrit分支规范.md
|
||||
|
||||
Reference in New Issue
Block a user