重构 API 路由并新增工作流编排功能
后端: - 重构 agents, heartbeats, locks, meetings, resources, roles, workflows 路由 - 新增 orchestrator 和 providers 路由 - 新增 CLI 调用器和流程编排服务 - 添加日志配置和依赖项 前端: - 更新 AgentsPage、SettingsPage、WorkflowPage 页面 - 扩展 api.ts 新增 API 接口 其他: - 清理测试 agent 数据文件 - 新增示例工作流和项目审计报告 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"agent_id": "arch-001",
|
||||
"name": "Architect",
|
||||
"role": "architect",
|
||||
"model": "claude-opus-4.6",
|
||||
"description": "Architect - architect",
|
||||
"created_at": "2026-03-09T17:23:06.837127",
|
||||
"status": "idle"
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"agent_id": "arch-001",
|
||||
"current_task": "",
|
||||
"progress": 0,
|
||||
"working_files": [],
|
||||
"last_update": "2026-03-09T17:23:06.852720"
|
||||
}
|
||||
9
.doc/agents/budget-opencode/info.json
Normal file
9
.doc/agents/budget-opencode/info.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"agent_id": "budget-opencode",
|
||||
"name": "预算管家 (OpenCode)",
|
||||
"role": "budget",
|
||||
"model": "opencode",
|
||||
"description": "用 OpenCode CLI 分析性价比和优惠",
|
||||
"created_at": "2026-03-10T14:10:42.666836",
|
||||
"status": "idle"
|
||||
}
|
||||
7
.doc/agents/budget-opencode/state.json
Normal file
7
.doc/agents/budget-opencode/state.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"agent_id": "budget-opencode",
|
||||
"current_task": "",
|
||||
"progress": 0,
|
||||
"working_files": [],
|
||||
"last_update": "2026-03-10T14:10:42.669798"
|
||||
}
|
||||
9
.doc/agents/chef-claude/info.json
Normal file
9
.doc/agents/chef-claude/info.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"agent_id": "chef-claude",
|
||||
"name": "美食家 (Claude)",
|
||||
"role": "chef",
|
||||
"model": "claude",
|
||||
"description": "用 Claude Code CLI 推荐美食方案",
|
||||
"created_at": "2026-03-10T14:10:42.643341",
|
||||
"status": "idle"
|
||||
}
|
||||
7
.doc/agents/chef-claude/state.json
Normal file
7
.doc/agents/chef-claude/state.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"agent_id": "chef-claude",
|
||||
"current_task": "",
|
||||
"progress": 0,
|
||||
"working_files": [],
|
||||
"last_update": "2026-03-10T14:10:42.645912"
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"agent_id": "claude-001",
|
||||
"name": "Claude Code",
|
||||
"role": "architect",
|
||||
"model": "claude-opus-4.6",
|
||||
"description": "",
|
||||
"created_at": "2026-03-05T10:17:03.114275",
|
||||
"status": "idle"
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"agent_id": "claude-001",
|
||||
"current_task": "fixing bug",
|
||||
"progress": 68,
|
||||
"working_files": [],
|
||||
"last_update": "2026-03-05T10:17:06.914810"
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"agent_id": "dev-001",
|
||||
"name": "Developer",
|
||||
"role": "developer",
|
||||
"model": "claude-sonnet-4.6",
|
||||
"description": "Developer - developer",
|
||||
"created_at": "2026-03-09T17:23:06.864073",
|
||||
"status": "idle"
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"agent_id": "dev-001",
|
||||
"current_task": "",
|
||||
"progress": 0,
|
||||
"working_files": [],
|
||||
"last_update": "2026-03-09T17:23:06.867216"
|
||||
}
|
||||
9
.doc/agents/health-kimi/info.json
Normal file
9
.doc/agents/health-kimi/info.json
Normal file
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"agent_id": "health-kimi",
|
||||
"name": "营养师 (Kimi)",
|
||||
"role": "health",
|
||||
"model": "kimi",
|
||||
"description": "用 Kimi CLI 提供健康饮食建议",
|
||||
"created_at": "2026-03-10T14:10:42.658959",
|
||||
"status": "idle"
|
||||
}
|
||||
7
.doc/agents/health-kimi/state.json
Normal file
7
.doc/agents/health-kimi/state.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"agent_id": "health-kimi",
|
||||
"current_task": "",
|
||||
"progress": 0,
|
||||
"working_files": [],
|
||||
"last_update": "2026-03-10T14:10:42.661356"
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"agent_id": "kimi-001",
|
||||
"name": "Kimi CLI",
|
||||
"role": "architect",
|
||||
"model": "kimi-k2",
|
||||
"description": "Kimi CLI - architect",
|
||||
"created_at": "2026-03-09T18:23:33.409369",
|
||||
"status": "idle"
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"agent_id": "kimi-001",
|
||||
"current_task": "",
|
||||
"progress": 0,
|
||||
"working_files": [],
|
||||
"last_update": "2026-03-09T18:23:33.413023"
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"agent_id": "kimi-002",
|
||||
"name": "Kimi CLI",
|
||||
"role": "pm",
|
||||
"model": "moonshot-v1-8k",
|
||||
"description": "",
|
||||
"created_at": "2026-03-05T10:17:04.382854",
|
||||
"status": "idle"
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"agent_id": "kimi-002",
|
||||
"current_task": "",
|
||||
"progress": 0,
|
||||
"working_files": [],
|
||||
"last_update": "2026-03-05T10:17:04.387780"
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"agent_id": "opencode-001",
|
||||
"name": "OpenCode",
|
||||
"role": "reviewer",
|
||||
"model": "opencode-v1",
|
||||
"description": "OpenCode - reviewer",
|
||||
"created_at": "2026-03-09T18:23:34.314235",
|
||||
"status": "idle"
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"agent_id": "opencode-001",
|
||||
"current_task": "",
|
||||
"progress": 0,
|
||||
"working_files": [],
|
||||
"last_update": "2026-03-09T18:23:34.317455"
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"agent_id": "qa-001",
|
||||
"name": "QA Engineer",
|
||||
"role": "qa",
|
||||
"model": "claude-haiku-4.6",
|
||||
"description": "QA Engineer - qa",
|
||||
"created_at": "2026-03-09T17:23:06.877677",
|
||||
"status": "idle"
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"agent_id": "qa-001",
|
||||
"current_task": "",
|
||||
"progress": 0,
|
||||
"working_files": [],
|
||||
"last_update": "2026-03-09T17:23:06.880737"
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"agent_id": "test-001",
|
||||
"name": "Test Agent",
|
||||
"role": "developer",
|
||||
"model": "claude-sonnet-4.6",
|
||||
"description": "Test Agent - developer",
|
||||
"created_at": "2026-03-09T17:22:39.234290",
|
||||
"status": "idle"
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"agent_id": "test-001",
|
||||
"current_task": "",
|
||||
"progress": 0,
|
||||
"working_files": [],
|
||||
"last_update": "2026-03-09T17:22:39.236368"
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
{
|
||||
"agent_id": "test-agent-001",
|
||||
"name": "Test Agent",
|
||||
"role": "developer",
|
||||
"model": "claude-opus-4.6",
|
||||
"description": "测试用的 Agent",
|
||||
"created_at": "2026-03-09T09:28:05.266992",
|
||||
"status": "idle"
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
{
|
||||
"agent_id": "test-agent-001",
|
||||
"current_task": "修复 bug",
|
||||
"progress": 75,
|
||||
"working_files": [],
|
||||
"last_update": "2026-03-09T09:28:05.280849"
|
||||
}
|
||||
51
.doc/cache/heartbeats.json
vendored
51
.doc/cache/heartbeats.json
vendored
@@ -15,7 +15,7 @@
|
||||
},
|
||||
"agent-001": {
|
||||
"agent_id": "agent-001",
|
||||
"last_heartbeat": "2026-03-09T09:28:05.259883",
|
||||
"last_heartbeat": "2026-03-10T09:46:01.524675",
|
||||
"status": "working",
|
||||
"current_task": "测试任务",
|
||||
"progress": 50
|
||||
@@ -61,5 +61,54 @@
|
||||
"status": "idle",
|
||||
"current_task": "",
|
||||
"progress": 0
|
||||
},
|
||||
"test-api-001": {
|
||||
"agent_id": "test-api-001",
|
||||
"last_heartbeat": "2026-03-10T09:51:56.468836",
|
||||
"status": "idle",
|
||||
"current_task": "",
|
||||
"progress": 100
|
||||
},
|
||||
"chef-001": {
|
||||
"agent_id": "chef-001",
|
||||
"last_heartbeat": "2026-03-10T14:01:11.073277",
|
||||
"status": "idle",
|
||||
"current_task": "",
|
||||
"progress": 100
|
||||
},
|
||||
"health-001": {
|
||||
"agent_id": "health-001",
|
||||
"last_heartbeat": "2026-03-10T14:01:10.054540",
|
||||
"status": "idle",
|
||||
"current_task": "",
|
||||
"progress": 100
|
||||
},
|
||||
"budget-001": {
|
||||
"agent_id": "budget-001",
|
||||
"last_heartbeat": "2026-03-10T14:01:10.399576",
|
||||
"status": "idle",
|
||||
"current_task": "",
|
||||
"progress": 100
|
||||
},
|
||||
"chef-claude": {
|
||||
"agent_id": "chef-claude",
|
||||
"last_heartbeat": "2026-03-10T15:08:32.140273",
|
||||
"status": "idle",
|
||||
"current_task": "",
|
||||
"progress": 100
|
||||
},
|
||||
"health-kimi": {
|
||||
"agent_id": "health-kimi",
|
||||
"last_heartbeat": "2026-03-10T15:06:31.463105",
|
||||
"status": "idle",
|
||||
"current_task": "",
|
||||
"progress": 100
|
||||
},
|
||||
"budget-opencode": {
|
||||
"agent_id": "budget-opencode",
|
||||
"last_heartbeat": "2026-03-10T15:06:51.417016",
|
||||
"status": "idle",
|
||||
"current_task": "",
|
||||
"progress": 100
|
||||
}
|
||||
}
|
||||
25
.doc/cache/meeting_queue.json
vendored
25
.doc/cache/meeting_queue.json
vendored
@@ -35,15 +35,16 @@
|
||||
"meeting_id": "test-meeting-001",
|
||||
"title": "测试会议",
|
||||
"expected_attendees": [
|
||||
"claude-001",
|
||||
"kimi-001"
|
||||
"agent-001",
|
||||
"agent-002"
|
||||
],
|
||||
"arrived_attendees": [
|
||||
"claude-001"
|
||||
"agent-001",
|
||||
"agent-002"
|
||||
],
|
||||
"status": "waiting",
|
||||
"created_at": "2026-03-09T18:05:28.657165",
|
||||
"started_at": "",
|
||||
"status": "ended",
|
||||
"created_at": "2026-03-10T09:46:01.575444",
|
||||
"started_at": "2026-03-10T09:46:02.608852",
|
||||
"min_required": 2
|
||||
},
|
||||
"meeting-001": {
|
||||
@@ -79,5 +80,17 @@
|
||||
"created_at": "2026-03-09T17:23:43.445453",
|
||||
"started_at": "2026-03-09T17:23:43.501216",
|
||||
"min_required": 3
|
||||
},
|
||||
"meeting-1773107507": {
|
||||
"meeting_id": "meeting-1773107507",
|
||||
"title": "API 测试会议",
|
||||
"expected_attendees": [
|
||||
"test-api-001"
|
||||
],
|
||||
"arrived_attendees": [],
|
||||
"status": "ended",
|
||||
"created_at": "2026-03-10T09:51:47.354477",
|
||||
"started_at": "",
|
||||
"min_required": 1
|
||||
}
|
||||
}
|
||||
57
.doc/meetings/2026-03-10/dinner-proposals.json
Normal file
57
.doc/meetings/2026-03-10/dinner-proposals.json
Normal file
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"meeting_id": "dinner-proposals",
|
||||
"title": "晚饭提议",
|
||||
"date": "2026-03-10",
|
||||
"attendees": [
|
||||
"chef-claude",
|
||||
"health-kimi",
|
||||
"budget-opencode"
|
||||
],
|
||||
"steps": [
|
||||
{
|
||||
"step_id": "step_1",
|
||||
"label": "提议",
|
||||
"status": "completed",
|
||||
"completed_at": "2026-03-10T15:05:07.995673"
|
||||
},
|
||||
{
|
||||
"step_id": "step_2",
|
||||
"label": "讨论",
|
||||
"status": "pending",
|
||||
"completed_at": ""
|
||||
},
|
||||
{
|
||||
"step_id": "step_3",
|
||||
"label": "共识",
|
||||
"status": "completed",
|
||||
"completed_at": "2026-03-10T15:05:27.690590"
|
||||
}
|
||||
],
|
||||
"discussions": [
|
||||
{
|
||||
"agent_id": "chef-claude",
|
||||
"agent_name": "美食家 (Claude)",
|
||||
"content": "这是 **Swarm Command Center** 中「晚饭提议」工作流的模拟场景。\n\n## 场景说明\n\n在这个场景中,多个 AI Agent 会扮演不同角色(大厨、健康顾问、预算管理员等)来讨论晚餐选择,最终达成共识。\n\n**讨论流程**:\n1. **提议** - 各 Agent 依次发言(2-3句话)\n2. **讨论** - 记录到会议系统\n3. **共识** - 生成最终决议\n\n**角色设定**(`workflow_orchestrator.py:108-141`):\n- **chef**(美食达人)- 关注口味、食材\n- **health**(健康顾问)- 关注营养均衡\n- **budget**(预算管理)- 关注性价比\n- **pm**(产品经理)- 综合决策\n\n---\n\n你想做什么?\n\n1. **启动工作流** - 运行完整的晚饭决策流程\n2. **查看运行状态** - 查看之前的编排结果\n3. **创建/修改工作流定义** - 编辑 `.doc/workflow/dinner-decision.yaml`\n4. **查看现有 Agent 状态** - 确认参与讨论的 Agent 是否已注册",
|
||||
"timestamp": "2026-03-10T15:04:31.968972",
|
||||
"step": "讨论"
|
||||
},
|
||||
{
|
||||
"agent_id": "health-kimi",
|
||||
"agent_name": "营养师 (Kimi)",
|
||||
"content": "建议晚餐采用\"蔬菜占一半、蛋白质占四分之一、主食占四分之一\"的搭配原则,优先选择\n清蒸、炖煮等低油烹饪方式。控制总热量在500-700千卡之间,避免高盐高糖的加工食品\n。如果有外卖计划,请选择卫生评级B级以上的商家。",
|
||||
"timestamp": "2026-03-10T15:04:48.638259",
|
||||
"step": "讨论"
|
||||
},
|
||||
{
|
||||
"agent_id": "budget-opencode",
|
||||
"agent_name": "预算管家 (OpenCode)",
|
||||
"content": "您好!请告诉我您希望我扮演什么角色,以及讨论的具体场景是什么?这样我才能给出合适的观点和建议。",
|
||||
"timestamp": "2026-03-10T15:05:07.977497",
|
||||
"step": "讨论"
|
||||
}
|
||||
],
|
||||
"status": "completed",
|
||||
"created_at": "2026-03-10T15:01:32.839808",
|
||||
"ended_at": "2026-03-10T15:05:27.690584",
|
||||
"consensus": "根据营养师的专业建议和讨论情况,晚餐共识如下:\n\n我们决定晚餐遵循\"蔬菜占一半、蛋白质占四分之一、主食占四分之一\"的健康搭配原则,\n优先采用清蒸、炖煮等低油烹饪方式,将总热量控制在500-700千卡之间。如需外卖,必\n须选择卫生评级B级以上的商家,同时避免高盐高糖的加工食品。请按此标准准备或订购\n今晚的晚餐。"
|
||||
}
|
||||
69
.doc/meetings/2026-03-10/dinner-proposals.md
Normal file
69
.doc/meetings/2026-03-10/dinner-proposals.md
Normal file
@@ -0,0 +1,69 @@
|
||||
# 晚饭提议
|
||||
|
||||
**会议 ID**: dinner-proposals
|
||||
**日期**: 2026-03-10
|
||||
**状态**: completed
|
||||
**参会者**: chef-claude, health-kimi, budget-opencode
|
||||
|
||||
## 会议进度
|
||||
|
||||
- ● **提议** (2026-03-10T15:05:07.995673)
|
||||
- ○ **讨论**
|
||||
- ● **共识** (2026-03-10T15:05:27.690590)
|
||||
|
||||
## 讨论记录
|
||||
|
||||
### 美食家 (Claude) - 2026-03-10T15:04:31
|
||||
*步骤: 讨论*
|
||||
|
||||
这是 **Swarm Command Center** 中「晚饭提议」工作流的模拟场景。
|
||||
|
||||
## 场景说明
|
||||
|
||||
在这个场景中,多个 AI Agent 会扮演不同角色(大厨、健康顾问、预算管理员等)来讨论晚餐选择,最终达成共识。
|
||||
|
||||
**讨论流程**:
|
||||
1. **提议** - 各 Agent 依次发言(2-3句话)
|
||||
2. **讨论** - 记录到会议系统
|
||||
3. **共识** - 生成最终决议
|
||||
|
||||
**角色设定**(`workflow_orchestrator.py:108-141`):
|
||||
- **chef**(美食达人)- 关注口味、食材
|
||||
- **health**(健康顾问)- 关注营养均衡
|
||||
- **budget**(预算管理)- 关注性价比
|
||||
- **pm**(产品经理)- 综合决策
|
||||
|
||||
---
|
||||
|
||||
你想做什么?
|
||||
|
||||
1. **启动工作流** - 运行完整的晚饭决策流程
|
||||
2. **查看运行状态** - 查看之前的编排结果
|
||||
3. **创建/修改工作流定义** - 编辑 `.doc/workflow/dinner-decision.yaml`
|
||||
4. **查看现有 Agent 状态** - 确认参与讨论的 Agent 是否已注册
|
||||
|
||||
### 营养师 (Kimi) - 2026-03-10T15:04:48
|
||||
*步骤: 讨论*
|
||||
|
||||
建议晚餐采用"蔬菜占一半、蛋白质占四分之一、主食占四分之一"的搭配原则,优先选择
|
||||
清蒸、炖煮等低油烹饪方式。控制总热量在500-700千卡之间,避免高盐高糖的加工食品
|
||||
。如果有外卖计划,请选择卫生评级B级以上的商家。
|
||||
|
||||
### 预算管家 (OpenCode) - 2026-03-10T15:05:07
|
||||
*步骤: 讨论*
|
||||
|
||||
您好!请告诉我您希望我扮演什么角色,以及讨论的具体场景是什么?这样我才能给出合适的观点和建议。
|
||||
|
||||
## 共识
|
||||
|
||||
根据营养师的专业建议和讨论情况,晚餐共识如下:
|
||||
|
||||
我们决定晚餐遵循"蔬菜占一半、蛋白质占四分之一、主食占四分之一"的健康搭配原则,
|
||||
优先采用清蒸、炖煮等低油烹饪方式,将总热量控制在500-700千卡之间。如需外卖,必
|
||||
须选择卫生评级B级以上的商家,同时避免高盐高糖的加工食品。请按此标准准备或订购
|
||||
今晚的晚餐。
|
||||
|
||||
---
|
||||
|
||||
**创建时间**: 2026-03-10T15:01:32.839808
|
||||
**结束时间**: 2026-03-10T15:05:27.690584
|
||||
57
.doc/meetings/2026-03-10/dinner-vote.json
Normal file
57
.doc/meetings/2026-03-10/dinner-vote.json
Normal file
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"meeting_id": "dinner-vote",
|
||||
"title": "讨论与投票",
|
||||
"date": "2026-03-10",
|
||||
"attendees": [
|
||||
"chef-claude",
|
||||
"health-kimi",
|
||||
"budget-opencode"
|
||||
],
|
||||
"steps": [
|
||||
{
|
||||
"step_id": "step_1",
|
||||
"label": "提议",
|
||||
"status": "completed",
|
||||
"completed_at": "2026-03-10T15:06:51.426835"
|
||||
},
|
||||
{
|
||||
"step_id": "step_2",
|
||||
"label": "讨论",
|
||||
"status": "pending",
|
||||
"completed_at": ""
|
||||
},
|
||||
{
|
||||
"step_id": "step_3",
|
||||
"label": "共识",
|
||||
"status": "completed",
|
||||
"completed_at": "2026-03-10T15:07:36.101402"
|
||||
}
|
||||
],
|
||||
"discussions": [
|
||||
{
|
||||
"agent_id": "chef-claude",
|
||||
"agent_name": "美食家 (Claude)",
|
||||
"content": "我无法直接访问 `.doc/` 目录中的会议和工作流数据。请帮我确认一下你的具体需求:\n\n**关于「讨论与投票」场景,你希望:**\n\n1. **创建一个新的会议** - 用于团队讨论和投票某个议题?\n2. **查看当前进行中的会议** - 是否有 ID 或名称?\n3. **在工作流中添加步骤** - 将「讨论与投票」作为工作流的一个阶段?\n4. **模拟/记录讨论内容** - 记录团队成员的讨论发言?\n\n如果是创建会议,请提供:\n- 会议主题/标题\n- 参与讨论的 Agent ID 列表(如:claude-001, kimi-001)\n- (可选)具体要讨论和投票的内容\n\n请告诉我具体想做什么,我来协助你操作。",
|
||||
"timestamp": "2026-03-10T15:06:13.624257",
|
||||
"step": "讨论"
|
||||
},
|
||||
{
|
||||
"agent_id": "health-kimi",
|
||||
"agent_name": "营养师 (Kimi)",
|
||||
"content": "作为营养师,我认可上一轮达成的\"蔬菜半盘、蛋白和主食各四分之一\"的餐盘比例共识,\n这是符合《中国居民膳食指南》的黄金搭配。清蒸和炖煮确实能最大程度保留营养并减少\n油脂摄入,建议大家在点餐或烹饪前先用手机备忘录规划好食材比例,避免临时决策导致\n热量超标。另外提醒一点,外卖酱料包往往藏有隐形盐分,尽量选择独立包装的酱料并只\n使用三分之一。",
|
||||
"timestamp": "2026-03-10T15:06:31.458353",
|
||||
"step": "讨论"
|
||||
},
|
||||
{
|
||||
"agent_id": "budget-opencode",
|
||||
"agent_name": "预算管家 (OpenCode)",
|
||||
"content": "我明白了,但您还没有告诉我需要扮演什么角色以及讨论的场景是什么,请提供更多背景信息。",
|
||||
"timestamp": "2026-03-10T15:06:51.411820",
|
||||
"step": "讨论"
|
||||
}
|
||||
],
|
||||
"status": "completed",
|
||||
"created_at": "2026-03-10T15:05:27.693693",
|
||||
"ended_at": "2026-03-10T15:07:36.101395",
|
||||
"consensus": "根据讨论记录,各参与者对「讨论与投票」场景的理解尚未对齐:美食家询问具体需求方\n向,营养师分享了健康饮食建议,预算管家则表示未收到角色设定。显然讨论缺乏统一的\n场景背景和明确的议题目标。共识是需要先明确角色扮演场景、统一讨论主题,并建立基\n本的沟通框架。下一步行动方案是:由主持人重新定义场景和角色任务,确保所有参与者\n围绕同一议题展开讨论,然后再进行实质性交流和投票决策。"
|
||||
}
|
||||
60
.doc/meetings/2026-03-10/dinner-vote.md
Normal file
60
.doc/meetings/2026-03-10/dinner-vote.md
Normal file
@@ -0,0 +1,60 @@
|
||||
# 讨论与投票
|
||||
|
||||
**会议 ID**: dinner-vote
|
||||
**日期**: 2026-03-10
|
||||
**状态**: completed
|
||||
**参会者**: chef-claude, health-kimi, budget-opencode
|
||||
|
||||
## 会议进度
|
||||
|
||||
- ● **提议** (2026-03-10T15:06:51.426835)
|
||||
- ○ **讨论**
|
||||
- ● **共识** (2026-03-10T15:07:36.101402)
|
||||
|
||||
## 讨论记录
|
||||
|
||||
### 美食家 (Claude) - 2026-03-10T15:06:13
|
||||
*步骤: 讨论*
|
||||
|
||||
我无法直接访问 `.doc/` 目录中的会议和工作流数据。请帮我确认一下你的具体需求:
|
||||
|
||||
**关于「讨论与投票」场景,你希望:**
|
||||
|
||||
1. **创建一个新的会议** - 用于团队讨论和投票某个议题?
|
||||
2. **查看当前进行中的会议** - 是否有 ID 或名称?
|
||||
3. **在工作流中添加步骤** - 将「讨论与投票」作为工作流的一个阶段?
|
||||
4. **模拟/记录讨论内容** - 记录团队成员的讨论发言?
|
||||
|
||||
如果是创建会议,请提供:
|
||||
- 会议主题/标题
|
||||
- 参与讨论的 Agent ID 列表(如:claude-001, kimi-001)
|
||||
- (可选)具体要讨论和投票的内容
|
||||
|
||||
请告诉我具体想做什么,我来协助你操作。
|
||||
|
||||
### 营养师 (Kimi) - 2026-03-10T15:06:31
|
||||
*步骤: 讨论*
|
||||
|
||||
作为营养师,我认可上一轮达成的"蔬菜半盘、蛋白和主食各四分之一"的餐盘比例共识,
|
||||
这是符合《中国居民膳食指南》的黄金搭配。清蒸和炖煮确实能最大程度保留营养并减少
|
||||
油脂摄入,建议大家在点餐或烹饪前先用手机备忘录规划好食材比例,避免临时决策导致
|
||||
热量超标。另外提醒一点,外卖酱料包往往藏有隐形盐分,尽量选择独立包装的酱料并只
|
||||
使用三分之一。
|
||||
|
||||
### 预算管家 (OpenCode) - 2026-03-10T15:06:51
|
||||
*步骤: 讨论*
|
||||
|
||||
我明白了,但您还没有告诉我需要扮演什么角色以及讨论的场景是什么,请提供更多背景信息。
|
||||
|
||||
## 共识
|
||||
|
||||
根据讨论记录,各参与者对「讨论与投票」场景的理解尚未对齐:美食家询问具体需求方
|
||||
向,营养师分享了健康饮食建议,预算管家则表示未收到角色设定。显然讨论缺乏统一的
|
||||
场景背景和明确的议题目标。共识是需要先明确角色扮演场景、统一讨论主题,并建立基
|
||||
本的沟通框架。下一步行动方案是:由主持人重新定义场景和角色任务,确保所有参与者
|
||||
围绕同一议题展开讨论,然后再进行实质性交流和投票决策。
|
||||
|
||||
---
|
||||
|
||||
**创建时间**: 2026-03-10T15:05:27.693693
|
||||
**结束时间**: 2026-03-10T15:07:36.101395
|
||||
41
.doc/meetings/2026-03-10/meeting-1773107507.json
Normal file
41
.doc/meetings/2026-03-10/meeting-1773107507.json
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"meeting_id": "meeting-1773107507",
|
||||
"title": "API 测试会议",
|
||||
"date": "2026-03-10",
|
||||
"attendees": [
|
||||
"test-api-001"
|
||||
],
|
||||
"steps": [
|
||||
{
|
||||
"step_id": "step_1",
|
||||
"label": "讨论",
|
||||
"status": "completed",
|
||||
"completed_at": "2026-03-10T09:51:52.976775"
|
||||
},
|
||||
{
|
||||
"step_id": "step_2",
|
||||
"label": "决策",
|
||||
"status": "pending",
|
||||
"completed_at": ""
|
||||
},
|
||||
{
|
||||
"step_id": "step_3",
|
||||
"label": "总结",
|
||||
"status": "pending",
|
||||
"completed_at": ""
|
||||
}
|
||||
],
|
||||
"discussions": [
|
||||
{
|
||||
"agent_id": "test-api-001",
|
||||
"agent_name": "Test Agent",
|
||||
"content": "这是一条测试讨论",
|
||||
"timestamp": "2026-03-10T09:51:50.702079",
|
||||
"step": "讨论"
|
||||
}
|
||||
],
|
||||
"status": "completed",
|
||||
"created_at": "2026-03-10T09:51:47.358700",
|
||||
"ended_at": "2026-03-10T09:51:52.976766",
|
||||
"consensus": "测试共识"
|
||||
}
|
||||
28
.doc/meetings/2026-03-10/meeting-1773107507.md
Normal file
28
.doc/meetings/2026-03-10/meeting-1773107507.md
Normal file
@@ -0,0 +1,28 @@
|
||||
# API 测试会议
|
||||
|
||||
**会议 ID**: meeting-1773107507
|
||||
**日期**: 2026-03-10
|
||||
**状态**: completed
|
||||
**参会者**: test-api-001
|
||||
|
||||
## 会议进度
|
||||
|
||||
- ● **讨论** (2026-03-10T09:51:52.976775)
|
||||
- ○ **决策**
|
||||
- ○ **总结**
|
||||
|
||||
## 讨论记录
|
||||
|
||||
### Test Agent - 2026-03-10T09:51:50
|
||||
*步骤: 讨论*
|
||||
|
||||
这是一条测试讨论
|
||||
|
||||
## 共识
|
||||
|
||||
测试共识
|
||||
|
||||
---
|
||||
|
||||
**创建时间**: 2026-03-10T09:51:47.358700
|
||||
**结束时间**: 2026-03-10T09:51:52.976766
|
||||
49
.doc/meetings/2026-03-10/test-record-001.json
Normal file
49
.doc/meetings/2026-03-10/test-record-001.json
Normal file
@@ -0,0 +1,49 @@
|
||||
{
|
||||
"meeting_id": "test-record-001",
|
||||
"title": "测试记录会议",
|
||||
"date": "2026-03-10",
|
||||
"attendees": [
|
||||
"agent-001",
|
||||
"agent-002"
|
||||
],
|
||||
"steps": [
|
||||
{
|
||||
"step_id": "step_1",
|
||||
"label": "步骤1",
|
||||
"status": "completed",
|
||||
"completed_at": "2026-03-10T09:46:02.676469"
|
||||
},
|
||||
{
|
||||
"step_id": "step_2",
|
||||
"label": "步骤2",
|
||||
"status": "pending",
|
||||
"completed_at": ""
|
||||
},
|
||||
{
|
||||
"step_id": "step_3",
|
||||
"label": "步骤3",
|
||||
"status": "pending",
|
||||
"completed_at": ""
|
||||
}
|
||||
],
|
||||
"discussions": [
|
||||
{
|
||||
"agent_id": "agent-001",
|
||||
"agent_name": "Agent1",
|
||||
"content": "这是第一条讨论",
|
||||
"timestamp": "2026-03-10T09:46:02.643824",
|
||||
"step": ""
|
||||
},
|
||||
{
|
||||
"agent_id": "agent-002",
|
||||
"agent_name": "Agent2",
|
||||
"content": "这是第二条讨论",
|
||||
"timestamp": "2026-03-10T09:46:02.654028",
|
||||
"step": ""
|
||||
}
|
||||
],
|
||||
"status": "completed",
|
||||
"created_at": "2026-03-10T09:46:02.633420",
|
||||
"ended_at": "2026-03-10T09:46:02.676459",
|
||||
"consensus": "达成共识:继续开发"
|
||||
}
|
||||
31
.doc/meetings/2026-03-10/test-record-001.md
Normal file
31
.doc/meetings/2026-03-10/test-record-001.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# 测试记录会议
|
||||
|
||||
**会议 ID**: test-record-001
|
||||
**日期**: 2026-03-10
|
||||
**状态**: completed
|
||||
**参会者**: agent-001, agent-002
|
||||
|
||||
## 会议进度
|
||||
|
||||
- ● **步骤1** (2026-03-10T09:46:02.676469)
|
||||
- ○ **步骤2**
|
||||
- ○ **步骤3**
|
||||
|
||||
## 讨论记录
|
||||
|
||||
### Agent1 - 2026-03-10T09:46:02
|
||||
|
||||
这是第一条讨论
|
||||
|
||||
### Agent2 - 2026-03-10T09:46:02
|
||||
|
||||
这是第二条讨论
|
||||
|
||||
## 共识
|
||||
|
||||
达成共识:继续开发
|
||||
|
||||
---
|
||||
|
||||
**创建时间**: 2026-03-10T09:46:02.633420
|
||||
**结束时间**: 2026-03-10T09:46:02.676459
|
||||
28
.doc/workflow/dinner-decision.yaml
Normal file
28
.doc/workflow/dinner-decision.yaml
Normal file
@@ -0,0 +1,28 @@
|
||||
# 晚饭决定工作流
|
||||
# 多个 Agent 通过真实 AI CLI 协作讨论今晚吃什么
|
||||
workflow_id: "dinner-decision"
|
||||
name: "晚饭决定"
|
||||
description: "团队协作决定今晚吃什么,通过 Claude/Kimi/OpenCode CLI 进行真实 AI 讨论"
|
||||
|
||||
meetings:
|
||||
# 1. 提议阶段 - 每个 Agent 用不同 CLI 提出晚饭建议
|
||||
- meeting_id: "dinner-proposals"
|
||||
title: "晚饭提议"
|
||||
node_type: "meeting"
|
||||
attendees: ["chef-claude", "health-kimi", "budget-opencode"]
|
||||
depends_on: []
|
||||
|
||||
# 2. 讨论与投票 - 综合讨论,达成共识
|
||||
- meeting_id: "dinner-vote"
|
||||
title: "讨论与投票"
|
||||
node_type: "meeting"
|
||||
attendees: ["chef-claude", "health-kimi", "budget-opencode"]
|
||||
depends_on: ["dinner-proposals"]
|
||||
|
||||
# 3. 执行 - 确定最终方案
|
||||
- meeting_id: "dinner-order"
|
||||
title: "下单准备"
|
||||
node_type: "execution"
|
||||
attendees: ["chef-claude"]
|
||||
min_required: 1
|
||||
depends_on: ["dinner-vote"]
|
||||
Reference in New Issue
Block a user