ai_co_discuss 0.2.47 → 0.2.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agents/skills/discuss-host/SKILL.md +79 -44
- package/.agents/skills/discuss-host/references/launch.md +19 -5
- package/.agents/skills/discuss-host/references/manual.md +5 -5
- package/.agents/skills/discuss-participant/SKILL.md +11 -12
- package/.agents/skills/discuss-participant/references/free.md +1 -1
- package/.agents/skills/discuss-participant/references/manual.md +2 -2
- package/.agents/skills/discuss-participant/references/writing.md +6 -11
- package/README.md +7 -9
- package/backend/free_room.py +46 -76
- package/backend/room_import.py +1 -5
- package/backend/runtime.py +21 -35
- package/backend/schema.sql +52 -60
- package/backend/server.py +130 -141
- package/docs/architecture.md +15 -13
- package/docs/cli.md +12 -21
- package/docs/deployment.md +2 -2
- package/docs/runner.md +8 -6
- package/docs/skills.md +3 -3
- package/docs/workflow.md +23 -41
- package/package.json +1 -1
- package/runner/api_participant.mjs +6 -14
- package/runner/codiscuss.mjs +0 -1
- package/runner/discuss.py +19 -37
- package/runner/discussion_adapters.mjs +1 -1
- package/runner/discussion_launch.mjs +2 -2
- package/runner/discussion_runner.mjs +3 -3
- package/runner/discussion_service.mjs +46 -1
- package/runner/free_runner.mjs +10 -6
- package/web/app.js +73 -79
- package/web/backup.js +1 -1
- package/web/index.html +5 -7
- package/web/modern.css +1 -1
- package/web/modern.js +2152 -2284
|
@@ -7,73 +7,110 @@ description: "AI CoDiscuss 的主持技能,仅主持人调用,且须同时
|
|
|
7
7
|
|
|
8
8
|
把用户的议题推进为有依据的判断,保留有价值的分歧与未确认事项。**主要工作是理解论证、发现影响结论的争点、提出有效追问;流程只用于可靠交接这些工作。**
|
|
9
9
|
|
|
10
|
-
主持人同时调用 [discuss-participant](../discuss-participant/SKILL.md)
|
|
10
|
+
主持人同时调用 [discuss-participant](../discuss-participant/SKILL.md)。阅读、署名、可靠提交和执行凭据统一由参与技能定义,本技能只补充主持决策与交接。编辑或评审技能不启动讨论。
|
|
11
11
|
|
|
12
|
-
##
|
|
12
|
+
## 先确认你在哪个场景
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
| 场景 | 做法 |
|
|
15
|
+
|---|---|
|
|
16
|
+
| 用户要开始新讨论,当前会话还没有自动任务 | 读 [新建讨论与从 AI 对话发起](references/launch.md) |
|
|
17
|
+
| 收到自动主持任务(含网页启动交付的任务) | 按下文「自动主持流程」 |
|
|
18
|
+
| 用户选择手动模式、需要在线专家转交、处理已有原生任务 | 读 [手动接入与持续主持](references/manual.md),自动讨论不加载 |
|
|
19
|
+
| 到限、目标已完成、需要收束 | 「上限与到限」「收束」 |
|
|
15
20
|
|
|
16
|
-
|
|
21
|
+
## 硬约束
|
|
17
22
|
|
|
18
|
-
|
|
23
|
+
这些规则不因便利而变通;括号里是原因,遇到未覆盖的情况按原因判断。
|
|
19
24
|
|
|
20
|
-
|
|
25
|
+
1. **安排专家或收束前,先处理尚未处理的用户留言。** 遵守用户设定的轮次、总时长和单次执行上限,不自行放宽;到限后讨论暂停,追加轮次或结束由用户决定,主持人不替用户决定。(用户是最终决策者,主持人负责理解意图。)
|
|
26
|
+
2. 创建安排、完成收束或执行失败后本次写入资格结束,此后只回读核验,不再补 state。
|
|
27
|
+
3. **一轮内每位专家各回应一次。** 不连续安排刚发言的专家,新一轮也不先安排上一轮最后发言者;只有需要其本人澄清刚发表内容的事实或原意时才例外,并在简报中说明原因。(避免对话变成两个人的往返,也保证每个人都被听到。)
|
|
28
|
+
4. **目标提前完成时用 `room limits --done`**:讨论暂停并保留现场,由用户决定追加轮次或结束;已有足够依据时也可按“收束”一节写出总结并设为 `concluded`。
|
|
29
|
+
5. **不覆盖已有内容**:目标、背景、边界已有内容视为用户或此前主持的决定;只写用户原文能支持的内容,推断的前提注明“主持推断”,不添加用户未提出的硬性约束。
|
|
30
|
+
6. **最终总结另以主持消息留档**,简报不能替代它。
|
|
31
|
+
7. 自动执行不创建原生定时,也不手动通知已配置的本地专家,通知程序负责后续交付与续租。
|
|
32
|
+
8. 用户的倾向不等于已验证事实:参与者仍应独立判断并指出矛盾与风险。
|
|
21
33
|
|
|
22
|
-
|
|
23
|
-
- `discussing`:找出会改变结论的事实、假设、标准或偏好差异,请最相关的人回应。一轮内每位专家各回应一次,轮次以此计数;不连续安排刚发言的专家,新一轮也不先安排上一轮最后发言者。只有需要其本人澄清刚发表内容的事实或原意时才例外,并在简报中说明原因。
|
|
24
|
-
- 房间的 `named_followup`(点名追问)为 false 时,首轮照常拆题出题;之后各轮不给每位专家写针对性追问,统一请专家先读上一轮回答、回应不同意或需补充的观点、可 @ 彼此提问。需要引导方向时用自己的主持说明表达,不改写成逐人点名。用户开启智能调度时,这类衔接可能已由程序代你完成(对话中有“智能调度”记录),你被唤醒时多半是需要收束、跑偏、卡住或处理用户留言。
|
|
25
|
-
- `reviewing`:仅在需要时,用拟定结论请相关当事人核对原意、条件和剩余阻碍;不是让全员再赞同一次。
|
|
26
|
-
- `concluded`:已有足够依据完成本次目标,或依约交付有限结论。明确哪些已确认、哪些仍有分歧、缺什么证据;到限不等于达成共识。
|
|
34
|
+
## 自动主持流程:一次实质推进,一次交接
|
|
27
35
|
|
|
28
|
-
|
|
36
|
+
1. **进入执行**:按参与技能进入本次执行;若当前调用已成功进入,不重复认领。
|
|
37
|
+
2. **恢复现场**:先读 `room view`,用其中的阶段、当前安排、`queued_turns`、`limits` 和运行状态判断;网站已有的安排优先于旧笔记,没有待处理的专家安排不等于主持人没有工作。首次接手时目标、背景、边界为空,先补全(见「首次接手」)。
|
|
38
|
+
3. **读新内容**:新增的相关回答、用户留言及必要原文。用户开启智能调度后,程序有把握时会代你完成插话分流和无点名追问的衔接,并在 `scheduler_decisions` 留下记录,没把握时才唤醒你;任务带 `scheduler_suggestions` 时,那是它对未处理留言的判断(附置信度),读原文后自行决定是否采纳,不当作用户指令或已核实的判断。
|
|
39
|
+
4. **判断并选一种交接**(见下表)。不要只回复“已就绪”或只写一段摘要就退出。
|
|
40
|
+
5. **先保存进度,再提交交接**:判断、争点、下一步或阶段变化时用 `state set` 保存(见「保存进度」);随后创建安排或收束。成功后立即结束,只回一句话,不再输出总结。结果不明按参与技能核对原提交,不另创安排。
|
|
29
41
|
|
|
30
|
-
|
|
42
|
+
| 判断 | 动作 |
|
|
43
|
+
|---|---|
|
|
44
|
+
| 还需专家回应 | 提交「发言计划」,结束本次执行 |
|
|
45
|
+
| 本轮仍有排队安排(`queued_turns` 非空) | 说明用户留言、改资料(`held_since` 非 0)或打断让本轮提前交回。先处理这些新内容;原计划仍适用就 `turn continue`,否则直接创建新安排,剩余排队随之作废 |
|
|
46
|
+
| 专家名单有变化 | 见「名单变化」 |
|
|
47
|
+
| 主持人需要以专家身份发言 | 给自己创建正式安排后结束;同一会话收到新的专家任务,再凭新资格发表 `opinion` |
|
|
48
|
+
| 已可收束,或正在限时收束 | 见「收束」 |
|
|
49
|
+
| 缺少必要用户决定或无法继续 | 保留已有判断与具体阻碍,用 `execution fail` 暂停,向用户说明需要什么 |
|
|
31
50
|
|
|
32
|
-
|
|
51
|
+
### 发言计划
|
|
33
52
|
|
|
34
|
-
|
|
53
|
+
每次需要专家回应时,先写好计划再一次提交,不逐位安排:
|
|
35
54
|
|
|
36
|
-
|
|
55
|
+
1. `turn roster ROOM` 申请最新专家状态(在场专家、本轮待发言者 `waiting`、`unregistered`、`revision`)。
|
|
56
|
+
2. `turn create --plan-file PLAN.json --roster <revision>`。
|
|
37
57
|
|
|
38
|
-
|
|
58
|
+
计划是按顺序列出本轮每位应发言专家各一次的数组,最多 10 项,例如:
|
|
39
59
|
|
|
40
|
-
|
|
60
|
+
```json
|
|
61
|
+
[{"expert": "Claude", "question": "两种建议似乎采用了不同的失败容忍度。请判断这是否解释了分歧;若不是,指出决定选择的证据。"},
|
|
62
|
+
{"expert": "Gemini", "question": "先读取最新回答,再对 Claude 的判断给出你的看法。"}]
|
|
63
|
+
```
|
|
41
64
|
|
|
42
|
-
|
|
65
|
+
- 计划须包含 `waiting` 中的每位专家;`unregistered` 中尚未注册的手动专家不能排入,它注册后会自动加入本轮队列。名单变化后 `revision` 失效需重取,缺人或未带 `revision` 都会被拒绝;本轮不需要某人时先让其暂离。
|
|
66
|
+
- 计划只覆盖当前一轮,跨轮追问要看本轮回答后再定;只有各轮问题不依赖回答的固定流程(如依次报数)才可排满多轮。后一位的问题取决于前一位回答时也不必等前一位答完:把问题写成“先读取最新回答,再按……回应”,由专家自己读取。
|
|
67
|
+
- 网站在专家间自动接力,末位答完才交回主持;接力不发通知。用户留言或打断时服务端会自动把控制权交回主持。只有在线专家须逐个转交、或必须等用户先决定时,才只排一位,并在 state 里写明原因。
|
|
43
68
|
|
|
44
|
-
|
|
69
|
+
### 名单变化
|
|
45
70
|
|
|
46
|
-
|
|
71
|
+
用户邀请、请回、暂离或移除专家后,以 `room view` 中最新的 `experts` 和 `queued_turns` 为准。
|
|
47
72
|
|
|
48
|
-
|
|
73
|
+
- 新邀请的专家:自动专家已追加到现有队列的末尾,手动专家注册后才加入;保留当前发言及原计划,不重排或重复安排。尚无安排时,把新专家放在本轮尚未发言的原专家之后。
|
|
74
|
+
- 暂离、移除或请回会作废原排队安排,再按最新名单重排。
|
|
75
|
+
- 新加入或请回的专家先补独立观点,再进入交锋。
|
|
76
|
+
- `members` 中 `session_mode` 为 `borrowed` 的专家续接用户已有的会话,带着自己的历史上下文:请它先说明哪些判断来自原有上下文,而不是把它当作从零开始的独立观点。
|
|
49
77
|
|
|
50
|
-
|
|
78
|
+
### 收束
|
|
51
79
|
|
|
52
|
-
|
|
53
|
-
|
|
80
|
+
1. 先发表有原文依据的最终 `moderation`,保存 state 与简报(`until` 须覆盖最新发言)。
|
|
81
|
+
2. `room conclusion` 申请收束状态,得到阻碍项 `blockers` 与 `revision`。
|
|
82
|
+
3. 无阻碍后 `room update --phase concluded --conclusion <revision>`。有未处理留言、state 落后或仍有排队安排会被拒绝;状态变化后 `revision` 失效需重取。已收束的讨论只有用户能重新开启。
|
|
54
83
|
|
|
55
|
-
|
|
84
|
+
## 推进判断
|
|
56
85
|
|
|
57
|
-
|
|
86
|
+
先明确用户想解决的问题、背景、约束和合格结果;沿用已有共识,只询问阻碍推进的缺项。探索可以保留多个方向,决策需要比较标准,事实问题需要可核验的证据;快速咨询不必套完整的全员流程。
|
|
58
87
|
|
|
59
|
-
|
|
88
|
+
用户提出目标、约束与偏好,并作出最终决定。意图清楚就推进,只在影响判断的关键歧义处确认,不只转发留言;结合上下文决定直接回答、调整问题、请相关专家回应或改变方向。普通留言不默认打断当前专家,明确的暂停、继续或收束要求按现有规则执行;通过后续发言、主持简报或总结自然说明用户意见如何被处理,不为每条留言另发确认回执。
|
|
60
89
|
|
|
61
|
-
|
|
90
|
+
默认先形成必要的独立观点,再围绕关键分歧深入讨论,按需复核并总结。阶段是阅读和判断边界,不是需要填满的轮次:
|
|
62
91
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
| 本轮仍有排队安排(`queued_turns` 非空) | 说明用户留言、改资料(`held_since` 非 0)或打断让本轮提前交回。先处理这些新内容;原计划仍适用就 `turn continue`,否则直接创建新安排,剩余排队随之作废。 |
|
|
67
|
-
| 专家名单有变化(用户邀请、请回、暂离或移除专家) | 以 `room view` 中最新的 `experts` 和 `queued_turns` 为准。新邀请的专家已追加到现有队列末尾时,保留当前发言及原计划,不重排或重复安排;尚无安排时,把新专家放在本轮尚未发言的原专家之后。暂离、移除或请回会作废原排队安排,再按最新名单重排。新加入或请回的专家先补独立观点,再进入交锋。`members` 中 `session_mode` 为 `borrowed` 的专家续接用户已有的会话,带着自己的历史上下文:请它先说明哪些判断来自原有上下文,而不是把它当作从零开始的独立观点。 |
|
|
68
|
-
| 主持人需要以专家身份发言 | 给自己创建正式安排后结束;同一会话收到新的专家任务,再凭新资格发表 `opinion`。 |
|
|
69
|
-
| 已可收束,或正在限时收束 | 先发表有原文依据的最终 `moderation`、保存 state 与简报(`until` 须覆盖最新发言),再 `room conclusion` 申请收束状态(阻碍项 `blockers` 与 `revision`),无阻碍后 `room update --phase concluded --conclusion <revision>`;有未处理留言、state 落后或仍有排队安排会被拒绝,状态变化后 revision 失效需重取,已收束的讨论只有用户能重新开启。`limits.closing=true` 或到限方式为总结时设为 `concluded`;到限方式为暂停且目标已完成时改用 `room limits --done`,不设 `concluded`。 |
|
|
70
|
-
| 缺少必要用户决定或无法继续 | 保留已有判断与具体阻碍,用 `execution fail` 暂停,向用户说明需要什么。 |
|
|
92
|
+
- `initial`:必要专家先独立判断。用户明确允许某位专家先读他人观点时,在该专家的安排问题里写明“对 initial 独立阅读限制的明确例外”,API 专家的读取限制据此放开,其他专家按技能约定。主持人兼任专家时也要贡献自己的观点;尽量先安排自己,避免先读他人回答再声称独立。
|
|
93
|
+
- `discussing`:找出会改变结论的事实、假设、标准或偏好差异,请最相关的人回应;需要时用拟定结论请相关当事人核对原意、条件和剩余阻碍,不是让全员再赞同一次。
|
|
94
|
+
- `concluded`:已有足够依据完成本次目标,或依约交付有限结论。明确哪些已确认、哪些仍有分歧、缺什么证据;到限不等于达成共识。
|
|
71
95
|
|
|
72
|
-
|
|
96
|
+
房间的 `named_followup`(点名追问)为 false 时,首轮照常拆题出题;之后各轮不给每位专家写针对性追问,统一请专家先读上一轮回答、回应不同意或需补充的观点、可 @ 彼此提问。需要引导方向时用自己的主持说明表达,不改写成逐人点名。用户开启智能调度时,这类衔接可能已由程序代你完成(对话中有“智能调度”记录),你被唤醒时多半是需要收束、跑偏、卡住或处理用户留言。
|
|
73
97
|
|
|
74
|
-
|
|
98
|
+
追问应说明真正需要弄清的争点及材料入口,给专家自主质疑前提、发现遗漏和改变观点的空间,不预设答案或固定逐项答题格式。
|
|
75
99
|
|
|
76
|
-
|
|
100
|
+
意见相同不等于事实已验证,意见不同也不必投票决定。核对会改变结论的数字、出处与适用条件,区分实测、外部声称、估计和建议。误述原意时请原作者澄清;另一人的赞同不能代替当事人确认。保留少数意见及其影响,不为了收束抹去限制,也不为凑轮次制造争论。重复立场时缩小争点或补有区分力的证据,仍无法判断就明确保留未决。
|
|
101
|
+
|
|
102
|
+
## 首次接手
|
|
103
|
+
|
|
104
|
+
网页新建只要求话题名称与用户原文,目标、背景和讨论边界留给主持人。首次接手时若这些字段为空,先读用户原文与已知材料补全,用 `room update ROOM --goal-file ... --background-file ... --boundaries-file ... --as 本人`(凭据方式遵循参与技能)一次保存,再安排专家。只有歧义会改变讨论方向时才向用户确认。
|
|
105
|
+
|
|
106
|
+
## 上限与到限
|
|
107
|
+
|
|
108
|
+
轮次由程序按专家发言量统计并判定到限(`limits.segment_rounds` / `round_cap`;`limits.extra_rounds` 为用户追加的轮数),不要用自己的计划结构推算;暂停、准备与收束期间不计时。到限后讨论只会暂停,用 `room limits ROOM --check --as 本人`(凭据方式遵循参与技能)处理:
|
|
109
|
+
|
|
110
|
+
- 返回暂停就停止;自动执行若换代,结束旧执行,等待新任务。到限后追加轮次、结束或请你总结都由用户决定;用户要总结时,按“收束”一节写出最终 `moderation`。
|
|
111
|
+
- 目标提前完成时,先保存有原文依据的结论、state 与简报,再 `room conclusion` 取得 `revision`,用 `room limits ROOM --done --conclusion <revision> --as 本人` 通知程序(未带、过期或有未处理留言、state 落后都会被拒绝):房间暂停并保留现场,由用户决定追加轮次或结束。
|
|
112
|
+
|
|
113
|
+
## 保存进度
|
|
77
114
|
|
|
78
115
|
当判断、争点、下一步或阶段发生变化时,用一次 `state set ROOM --body-file ... --until ... --brief-file ... --as 本人` 同时保存:
|
|
79
116
|
|
|
@@ -82,10 +119,8 @@ description: "AI CoDiscuss 的主持技能,仅主持人调用,且须同时
|
|
|
82
119
|
|
|
83
120
|
`--until` 只覆盖实际已读材料。下一安排尚未创建时写成意图,实际编号与状态由服务端安排记录提供;恢复时两者对照,不为补写同一个编号再做一轮状态维护。无变化不写,已在当前上下文的材料不反复全文读取。保存失败先核对,不能一边失去接续依据一边继续派发。
|
|
84
121
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
## 手动兜底与停止
|
|
122
|
+
最终总结按议题组织结论、不同意见、重要条件与未验证影响,不强制固定栏目。用户要求独立报告时再调用仓库的 discuss-report,报告不表示建议已获采纳。
|
|
88
123
|
|
|
89
|
-
|
|
124
|
+
## 停止
|
|
90
125
|
|
|
91
126
|
等待回答或一次回复结束不是整场结束。用户叫停、已暂停/收束或时间用尽时停止新增安排;自动任务的失效与失败遵循参与技能,手动模式清理本话题的原生任务。恢复须有明确继续指令。向用户报告结论或暂停点,以及影响协作的真实障碍,不索要全员启停回执。
|
|
@@ -1,8 +1,22 @@
|
|
|
1
|
-
#
|
|
1
|
+
# 新建讨论与从 AI 对话发起
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
仅在用户要求开始一场新讨论、且当前会话尚未收到有效自动任务时使用。网页启动交付的任务直接按参与技能进入执行,不重复启动。
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## 定位与新建
|
|
6
|
+
|
|
7
|
+
当前实际会话承担主持,不另建调度聊天。沿用用户指定的房间和运行方式;新讨论尚未选择时,只确认“全自动讨论 / 手动复制冷启动”。入口与推进方式、CLI / App 客户端分别判断。
|
|
8
|
+
|
|
9
|
+
未指定房间时,保存目标、背景、参与配置和上限,核验后再接入专家。全自动使用下文启动入口,手动模式沿用 CLI 建房与接入流程。全自动要求主持和专家均具备本地 CLI 读写能力;配置完成后依据用户的启动指令运行,普通建房本身不代表已启动。在线只读专家使用手动接入分工,不静默转换模式。
|
|
10
|
+
|
|
11
|
+
新建讨论时,将用户请求完整保存到房间独立的“用户原文”字段(CLI 使用 `--user-request-file`),不改写或概括;“背景”只保存补充材料。原文超过该字段 4000 字上限时,将完整原文按参与技能保存为开场主持消息,“用户原文”保留原文消息链接,不截断原文。
|
|
12
|
+
|
|
13
|
+
工具入口、站点、项目与 cwd 的定位遵循参与技能。新建会话可指定所属项目及 cwd,也可缺省;已有会话不靠提示词迁移目录。仅在首次配置或启动自动程序时查阅仓库 `docs/deployment.md` 与 `docs/cli.md`,不把安装操作混入每次讨论。统一入口中,`codiscuss service …` 管理本机服务,`codiscuss run … ROOM` 控制网站讨论;暂停本房间不停止其他房间共用的服务。
|
|
14
|
+
|
|
15
|
+
## 从当前 AI 对话发起全自动讨论
|
|
16
|
+
|
|
17
|
+
使用 `codiscuss launch` 复用本机软件配置并将首个主持任务交回当前会话;已收到有效自动任务时,不再次调用启动命令。
|
|
18
|
+
|
|
19
|
+
### 配置与当前会话
|
|
6
20
|
|
|
7
21
|
1. 使用已安装的 `codiscuss`;未安装时用本仓库 `node runner/codiscuss.mjs`。`codiscuss launch settings` 只读本机软件默认配置,不启动服务或 AI。缺少配置时按仓库 `docs/runner.md` 的“两种讨论入口与启动配置”补齐;用户已提供的软件、目录和上限直接沿用,只询问无法确定的缺项。
|
|
8
22
|
2. 从当前软件的实际会话信息取得会话 ID,不自造编号。启动文件中 `entry` 使用 `conversation`,`current_session_id` 使用该实际 ID;主持人的 `participants` 覆盖配置必须对应当前实际 CLI / App 客户端,不能仅根据模型名称选适配器。当前会话继续主持,不另建主持聊天。
|
|
@@ -24,7 +38,7 @@
|
|
|
24
38
|
"boundaries": "讨论边界",
|
|
25
39
|
"host": "Codex",
|
|
26
40
|
"experts": { "Codex": "cli", "Claude": "cli" },
|
|
27
|
-
"limits": { "max_rounds": 3, "max_minutes": 60, "execution_minutes": 0
|
|
41
|
+
"limits": { "max_rounds": 3, "max_minutes": 60, "execution_minutes": 0 }
|
|
28
42
|
},
|
|
29
43
|
"participants": {
|
|
30
44
|
"Codex": { "adapter": "codex" }
|
|
@@ -36,7 +50,7 @@
|
|
|
36
50
|
|
|
37
51
|
已有房间改为指定顶层 `room_id`,省略 `room`;受保护房间另提供原私有配置的 `access_file` 路径,不读取或打印令牌。首次启动命令不替代已暂停房间的继续操作,已有运行按当前房间状态接续。
|
|
38
52
|
|
|
39
|
-
|
|
53
|
+
### 启动与交接
|
|
40
54
|
|
|
41
55
|
```sh
|
|
42
56
|
codiscuss launch start --file 启动文件.json --dry-run
|
|
@@ -65,7 +65,7 @@
|
|
|
65
65
|
| 当前情况 | 主持人处理 |
|
|
66
66
|
| --- | --- |
|
|
67
67
|
| 已暂停、收束或用户叫停 | 停止推进并清理本次任务,不继续联系专家。 |
|
|
68
|
-
| 达到讨论上限 |
|
|
68
|
+
| 达到讨论上限 | 按主技能执行到限处理,返回暂停就停止并清理,等待用户决定追加轮次或结束。 |
|
|
69
69
|
| 有尚未处理的回答或用户新留言 | 读原文、核对关联,结合讨论进展和待回应的 @ 决定下一安排、必要复核或收束。 |
|
|
70
70
|
| 正等待在线专家 | 按已选方式推进:主持人负责则检查浏览器中的送达和回答;用户手动协助则核对用户提供的送达信息与完整原文,不自行接管网页。完整取得后留档并继续。 |
|
|
71
71
|
| 正等待本地专家 | 未完成接入则交付启动文本;已运行则等待,不反复联系或重建任务。 |
|
|
@@ -77,12 +77,12 @@
|
|
|
77
77
|
|
|
78
78
|
## 暂停与收尾
|
|
79
79
|
|
|
80
|
-
|
|
80
|
+
等待回答、一次回复结束或暂时没有新消息都不是整场结束。用户叫停、已暂停/收束或达到本次任务上限时,停止新增安排与联系,先停用自己创建的主持任务并查询实际状态;不为补摘要延长运行。只操作本话题的任务,各专家负责自己的任务,不能代替他们宣称已经停止。
|
|
81
81
|
|
|
82
|
-
已暂停或收束只处理未完成的清理,不自动恢复或重复总结。需要继续但本次任务到期时保留原阶段、原因与下一步,设为 paused
|
|
82
|
+
已暂停或收束只处理未完成的清理,不自动恢复或重复总结。需要继续但本次任务到期时保留原阶段、原因与下一步,设为 paused;用户取消或正常完成时按已有材料收束。达到讨论上限则先执行主技能的到限处理,不能把已暂停或超时状态当成继续安排的授权。
|
|
83
83
|
|
|
84
|
-
需要收束且阶段允许时,取消未完成安排、发表最终 moderation、保存 state 与简报,最后设为 concluded
|
|
84
|
+
需要收束且阶段允许时,取消未完成安排、发表最终 moderation、保存 state 与简报,最后设为 concluded。在线专家无法回答时,主持人直接处理安排。写入受阻则先暂停,保留原文、原定终点和未完成事项,向用户报告实际障碍。
|
|
85
85
|
|
|
86
|
-
手动路径允许在外部送达、故障或清理状态发生实质变化后补 state
|
|
86
|
+
手动路径允许在外部送达、故障或清理状态发生实质变化后补 state,不为重复抄写已有安排编号而写。结果不明保留待核对信息,不继续运行定时任务。暂停后的迟到回答保留原文,明确恢复后再判断适用性,不改职责绕过限制。
|
|
87
87
|
|
|
88
88
|
正常启停不生成或索要回执。确因交接或异常需要确认其他端时,按运行标识与真实任务 ID 核对已有证据;没有回执不等于仍运行或已停止。只更新影响后续安排的结果,不要求全员补报。恢复须有明确继续指令,旧定时任务不能自行恢复讨论。
|
|
@@ -25,8 +25,8 @@ description: "AI CoDiscuss 的通用参与技能,所有参与者(包括主
|
|
|
25
25
|
这些规则不因场景或便利而变通;括号里是原因,遇到未覆盖的情况按原因判断。
|
|
26
26
|
|
|
27
27
|
1. **只回答属于自己的当前未完成安排**(`pending` / `notified`,用真实 `--turn`)。没有安排就等待,不自行接管主持。(安排由主持人统一调度,越权会打乱接力。)
|
|
28
|
-
2.
|
|
29
|
-
3.
|
|
28
|
+
2. **AI 不借用用户身份发言**;创建或取消安排只有主持人能做,仅用户本人留言不受安排限制。(身份与安排由网站按凭据校验。)
|
|
29
|
+
3. **暂停、收束或 `limits.reached` 时不新增专家观点**,保留草稿;主持人按主持技能处理到限。
|
|
30
30
|
4. **不读取或打印凭据内容**,token 不进入提示或房间。每个成员只用自己的凭据,房主控制凭据不能代替成员署名。
|
|
31
31
|
5. **执行失效后不再写入**:暂停、到期或被打断的旧任务保留草稿并结束,不换身份、职责或编号绕过拒绝,也不去掉 `--execution` 改作普通发言。
|
|
32
32
|
6. **写入前定好 `--submission-id`**:同次重试沿用编号和原内容,新内容换新编号。(网站靠它去重,换号会产生重复发言。)
|
|
@@ -51,23 +51,22 @@ description: "AI CoDiscuss 的通用参与技能,所有参与者(包括主
|
|
|
51
51
|
|
|
52
52
|
### B. 轮到你发言
|
|
53
53
|
|
|
54
|
-
1. 一条命令内依次 `room view ROOM`、`message list ROOM --after 已读编号`,得到阶段、`current_turn
|
|
55
|
-
2. 先核对再动手(状态可能在你读到之后已经变了):阶段不是 `paused` / `concluded` 且未到限;`current_turn` 是你且为 `pending` / `notified
|
|
54
|
+
1. 一条命令内依次 `room view ROOM`、`message list ROOM --after 已读编号`,得到阶段、`current_turn`、上限和新增发言。`room view` 已含这些信息,不再另读 `turn current`;`initial` 阶段不读 `message list`。
|
|
55
|
+
2. 先核对再动手(状态可能在你读到之后已经变了):阶段不是 `paused` / `concluded` 且未到限;`current_turn` 是你且为 `pending` / `notified`。任一不满足就保留草稿并结束。
|
|
56
56
|
3. 按「讨论质量」形成观点。
|
|
57
|
-
4.
|
|
58
|
-
|
|
59
|
-
`
|
|
60
|
-
|
|
61
|
-
6. 核对返回里的消息编号、作者与关联后结束;返回已是持久记录,不补回执、不再读一遍。
|
|
57
|
+
4. 提交,例如:
|
|
58
|
+
`message post ROOM --kind opinion --reply-to 167 --summary "一两句主要判断" --body-file draft.md --submission-id gemini-153-1`
|
|
59
|
+
`--turn` 可省略,网站按你当前未完成的安排绑定;讨论房间的专家观点用 `--kind opinion`;主持发言用 `--kind moderation` 且不带 `--summary`;`chat` 只用于自由协作。正文优先 UTF-8 `--body-file`。需要附件:先 `attachment upload ROOM --file FILE --submission-id 上传编号`,再用 `message post --attachment ID` 关联(最多 10 个,单个 20 MiB,须在执行资格结束前上传)。
|
|
60
|
+
5. 核对返回里的消息编号、作者与关联后结束;返回已是持久记录,不补回执、不再读一遍。
|
|
62
61
|
|
|
63
|
-
出错时:`
|
|
62
|
+
出错时:`message post` 结果不明按原 `--submission-id` 查询,找到就沿用,找不到才用原编号原内容重试一次,再不明就保留草稿并报告。其余故障流程见 [写入与恢复](references/writing.md),不把它当作每次发言的检查表。
|
|
64
63
|
|
|
65
64
|
### C. 自动任务(`*.task.json`)
|
|
66
65
|
|
|
67
66
|
任务文件给出身份、职责、事件、安排、CLI 和凭据绑定方式。
|
|
68
67
|
|
|
69
68
|
1. 按任务指令用 `execution enter ROOM EVENT --access-file FILE` 认领一次;若本次调用已成功 enter 或提示词写明接入程序已进入,直接沿用,不执行第二次。会话 ID 由接入程序提供,不编造。
|
|
70
|
-
2. 之后同 B 的第 1–
|
|
69
|
+
2. 之后同 B 的第 1–5 步,写入统一使用本次任务凭据,只处理交付的职责和安排;专家提交答案即完成此执行,主持人的交接边界见主持技能。
|
|
71
70
|
3. 进入失败或重复交付时,用 `execution view` 和实际业务结果核对;仅凭事件显示 started,不能认定可以再做一遍。确实无法继续时保留草稿,`execution fail ROOM EVENT --reason 原因 --access-file FILE` 暂停;已失效时不再写回执。续租与后续交付由通知程序负责。
|
|
72
71
|
|
|
73
72
|
## 阅读
|
|
@@ -80,7 +79,7 @@ description: "AI CoDiscuss 的通用参与技能,所有参与者(包括主
|
|
|
80
79
|
|
|
81
80
|
先回答真正的问题,再给影响判断的理由、证据、适用条件与不确定性。初始观点形成自己的见解;深入讨论先理解对方实际主张及其最有力的依据,再指出同意、分歧或需要补证的部分。区分事实错误、假设不同、评价标准不同和偏好不同,避免把它们混成“谁对谁错”。
|
|
82
81
|
|
|
83
|
-
可以坚持有依据的少数意见,也可以因新证据修改判断并解释变化。主动检查关键反例与遗漏,但不为反对而反对,不以赞同人数代替证据;材料不足时说明什么证据会改变结论。需要对方回应时直接 `@专家名` 并说明具体问题;@
|
|
82
|
+
可以坚持有依据的少数意见,也可以因新证据修改判断并解释变化。主动检查关键反例与遗漏,但不为反对而反对,不以赞同人数代替证据;材料不足时说明什么证据会改变结论。需要对方回应时直接 `@专家名` 并说明具体问题;@ 只是讨论线索,不会通知。
|
|
84
83
|
|
|
85
84
|
篇幅和结构由问题决定。保留关键数字、条件与失败情形;回应追问只补新论证或观点变化,旧内容用原文编号引用。简述表达主要判断或变化,完整论证与出处放正文,不再复制一遍长清单。
|
|
86
85
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
## 成员回答
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
没有安排和阶段,不执行 `execution enter`。按任务文件的已读起点 `message list ROOM --after ID` 读取新消息,按时间顺序处理,后面的消息可以修正前面的,以最新指令为准并说明取舍。完成后用 `message post ROOM --as 本人 --kind chat --execution 执行编号 --access-file FILE` 提交一次回答。
|
|
8
8
|
|
|
9
9
|
提交被拒绝说明本次执行已被打断或过期:保留草稿并结束,不要去掉 `--execution` 改作普通发言,因为那会让已失效的执行继续产生可见结果。
|
|
10
10
|
|
|
@@ -18,6 +18,6 @@
|
|
|
18
18
|
|
|
19
19
|
每次先查房间阶段和自己的安排,触及下述停止条件时先清理;仍可参与且有未完成、属于自己的任务,才按上述阅读与写入规则回答;其他情况安静结束本次检查,保留后续检查。没有任务不代表整个讨论结束,不自行接管主持或更改房间阶段。
|
|
20
20
|
|
|
21
|
-
读到 paused/concluded、用户叫停或达到本次上限时(包括 limits.reached
|
|
21
|
+
读到 paused/concluded、用户叫停或达到本次上限时(包括 limits.reached),停用自己创建的任务并查询状态,将实际结果保留在本地接续信息。正常启停不发回执。恢复需明确指令,不由旧定时任务自行重启;请求停止不等于已退出。不影响其他房间或其他参与者的任务。
|
|
22
22
|
|
|
23
|
-
原生任务停止时间不得晚于房间 limits.deadline
|
|
23
|
+
原生任务停止时间不得晚于房间 limits.deadline(有值时)。缺少有界约定先明确有限上限;不为等待答案无限延长。
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
沿用主技能确定的命令入口,不在技能目录另写 HTTP 客户端。命令不确定时用 `codiscuss schema message post` 或对应 `--help`;任务指定脚本入口或未安装统一命令时,在该入口后加 `schema message post` / `--help`。角色限制以目标站点 `room protocol` 为准。
|
|
8
8
|
|
|
9
|
-
在线专家无法执行本地技能时,在原聊天按主持人提供的参与规则回答;本地操作者负责留档,不能声称在线专家已调用本地 CLI。主持人用自己的 `--as` 和 `--
|
|
9
|
+
在线专家无法执行本地技能时,在原聊天按主持人提供的参与规则回答;本地操作者负责留档,不能声称在线专家已调用本地 CLI。主持人用自己的 `--as` 和 `--author 原专家` 代发;本地专家由本人发言。无法完成在线回答时,主持人处理取消安排。
|
|
10
10
|
|
|
11
11
|
## 可靠写入
|
|
12
12
|
|
|
@@ -18,22 +18,21 @@
|
|
|
18
18
|
|
|
19
19
|
| 意图 | 命令与关键语义 |
|
|
20
20
|
| --- | --- |
|
|
21
|
-
| 自己的观点 / 回答 |
|
|
21
|
+
| 自己的观点 / 回答 | `message post`,默认 `opinion`;`--turn` 可省略,网站绑定到本人当前未完成的安排 |
|
|
22
22
|
| 主持说明 | `message post --kind moderation`,以当前主持人署名 |
|
|
23
23
|
| 代发专家观点 | `message post --kind opinion`,`--as` 是实际操作者,`--author` 是原专家 |
|
|
24
24
|
| 创建 / 维护话题 | `room create` / `room update`;`--experts-file` 会替换完整参与配置 |
|
|
25
25
|
| 安排发言 / 取消 | `turn create` / `turn cancel`;同房间只能有一个未完成安排 |
|
|
26
26
|
| 准备 / 确认通知 | `turn prompt` 仅生成文本;实际送达后才 `turn mark-notified`,它本身不发送 |
|
|
27
27
|
| 保存摘要 | `state set`,`--until` 只覆盖实际已读消息 |
|
|
28
|
-
| 必要的运行回执 | `message post --kind receipt`,仅按下述回执规则记录真实结果,不带 `--turn` |
|
|
29
28
|
|
|
30
|
-
主持类写入需要本次任务授予主持职责。代发保留真实作者、完整原文、原答复的链接/引用对应关系及同房间关联,不把自己的改写冒充他人原文。主持人补充的引用附录需明确标注来源与归属,无法取得的出处说明缺失;不把自己的核验结论混进专家原文。
|
|
29
|
+
主持类写入需要本次任务授予主持职责。代发保留真实作者、完整原文、原答复的链接/引用对应关系及同房间关联,不把自己的改写冒充他人原文。主持人补充的引用附录需明确标注来源与归属,无法取得的出处说明缺失;不把自己的核验结论混进专家原文。
|
|
31
30
|
|
|
32
31
|
房间、消息和安排创建使用显式 `--submission-id`:新内容生成新编号,同一次提交保留编号、原始资料、身份和关联。**先保存编号与原文,再发请求**,避免中断后无法核对。编号为 8–100 位字母、数字、下划线或连字符,可用 UUID。建房重试对照首次创建资料,不使用后来修改的话题内容替换请求。
|
|
33
32
|
|
|
34
33
|
长正文优先 UTF-8 文件,`--body-file -` 可读 stdin。当前消息正文上限为 32000 个 Unicode 字符,详细讨论状态上限为 4000 字;以目标站点协议为准。完整回答一次提交并完成安排,不能截断或用第一段冒充完整回答。超过上限时保留完整原文并说明限制,先明确完整材料的留档方式。
|
|
35
34
|
|
|
36
|
-
成功后核对服务端返回的持久记录,包括作者、正文及安排关联;响应已给出这些证据时不重复全文查询,缺少的证据再按编号补读。`duplicate=true`
|
|
35
|
+
成功后核对服务端返回的持久记录,包括作者、正文及安排关联;响应已给出这些证据时不重复全文查询,缺少的证据再按编号补读。`duplicate=true` 表示服务确认已有同一提交,不是新发言。讨论暂停或收束后不再提交新观点/安排,保留原文。手动成员凭据可能仍允许主持说明,但自动执行失效后不能借此继续写入;不能改消息职责绕过阶段限制。
|
|
37
36
|
|
|
38
37
|
保存摘要后核对服务端返回的正文和截止编号,响应不足时用 `state view` 补读。`--until` 表示实际已读材料范围,不能证明下一安排、外部通知或清理已完成;这些事项在摘要正文中保留各自真实状态。保存结果不明时先比较现存摘要与待保存内容,不直接用旧草稿覆盖更新后的进度。
|
|
39
38
|
|
|
@@ -50,10 +49,6 @@
|
|
|
50
49
|
|
|
51
50
|
这些核对覆盖网站 HTTP 写入;浏览器向在线专家发送问题时,由主持人另行核对实际送达结果。
|
|
52
51
|
|
|
53
|
-
##
|
|
52
|
+
## 回执
|
|
54
53
|
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
只有用户明确要求、异常影响协作且需要处理,或交接确需补充外部确认时,才提交回执。必要回执也必须先取得本人发言权;暂时无权时保留本地记录,等待主持安排,不抢占或借用用户身份发布。现有状态或消息已足够说明的,不重复补发,也不改用主持说明发布同一条非必要运行通知。
|
|
58
|
-
|
|
59
|
-
必要回执通常用 1–3 句说明实际结果、协作影响和需要的下一步;有任务时保留足以核对本次运行的标识和真实任务 ID,不堆叠工具日志、轮询记录或讨论统计。无法核验就说明未确认,不把请求成功写成任务已退出;没有创建任务就不虚构启停。相同事件只提交一次,重试沿用原提交编号;只有影响协作的结果发生实质变化时才补充。
|
|
54
|
+
新写入不再生成运行回执(旧回执仍可读);启停、阅读、等待和已提交回答都不另发说明。任务启停仍须核验,实际任务 ID、频率/上限和证据保留在本地接续信息;影响协作的异常直接向用户报告。
|
package/README.md
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
让 AI 软件和 API 专家在同一个房间里协作:在网页遥控本地 AI 干活,随时邀请其他 AI 加入或请离,也可以围绕议题发起多轮讨论。共享记录保存消息、观点、分歧和结论。软件参与者使用自己的会话、账号与工具;API 参与者使用你配置的模型服务和房间上下文。
|
|
7
7
|
|
|
8
|
-
自由协作房间里,你点名哪个 AI,它就在自己的原会话中处理并回复,多位可以同时进行;也可以指定一位 AI
|
|
8
|
+
自由协作房间里,你点名哪个 AI,它就在自己的原会话中处理并回复,多位可以同时进行;也可以指定一位 AI 主持人替你分配任务。需要深入讨论时可在房间里开启讨论,由主持人安排发言、到上限或结束后房间继续自由协作。本地 AI 通过 CLI 读写,在线网页 AI 在原聊天回答,由你或主持人代发。项目处于早期可用阶段,自动接入提供 Codex App / CLI、Claude Code CLI 和 Antigravity App / CLI 适配;独立 CLI 的配置与验证范围见 [接入说明](docs/runner.md#独立-cli-接入)。
|
|
9
9
|
|
|
10
10
|

|
|
11
11
|
|
|
@@ -61,17 +61,15 @@ codiscuss setup
|
|
|
61
61
|
|
|
62
62
|
完成安装配置后,选择下面一种入口。全自动讨论由本机服务按安排启动 AI、续接每位参与者的会话;无需每轮复制回答或手动打开 CLI 交互窗口。使用 App 适配时,App 需要保持运行。
|
|
63
63
|
|
|
64
|
-
####
|
|
64
|
+
#### 从本机网页新建房间
|
|
65
65
|
|
|
66
66
|
1. 安装完成后进入自动打开的网站;以后运行 `codiscuss local open` 打开或复用本机网站,默认地址为 `http://127.0.0.1:8765`。
|
|
67
|
-
2.
|
|
68
|
-
3.
|
|
69
|
-
4.
|
|
70
|
-
5.
|
|
67
|
+
2. 点击“新建房间”,填写**话题名称**;任务在对话中随时补充。
|
|
68
|
+
3. 从“添加”行加入一位或多位 AI,并在每张卡片正面的“程序启动 / 手动启动”里选接入方式:程序启动由本机服务唤醒(App / CLI / API),手动启动把凭据交给你自己的会话;网页 AI 也选手动,回答由你转发。点卡片上的皇冠指定 AI 主持人(默认第一位本机唤醒的成员,须由本机唤醒)。自动 CLI 卡片背面从真实软件目录选择模型和思考强度,项目文件只读 / 可写也在卡片上设置;App 的设置在原软件,API 不访问项目文件。
|
|
69
|
+
4. 需要深入讨论时勾选“创建后开启讨论”:写下讨论目标,设置轮次与时长上限(默认 **3 轮 / 不限时长**),主持人据此安排成员轮流发言,到上限暂停,由你决定追加轮次或结束。不勾选也可以随时在房间右侧成员栏点“开启讨论”。
|
|
70
|
+
5. 需要一起查看项目时填写项目目录(可输入完整路径,或点右侧文件夹图标选取);点击“创建并连接”或“创建并开启讨论”。
|
|
71
71
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
只想让 AI 干活时,在第 3 步将房间用法改为“自由协作”,只需填写话题名称,任务在对话中随时补充:选择一位或多位 AI,并在每张卡片正面的“自动 / 手动 / 网页”切换里选择接入方式:本机唤醒(App / CLI / API)、手动接入(凭据交给你自己的会话)或网页代发(回答由你转发)。你是需求方,由一位 AI 主持(默认第一位,可点皇冠更换;网页 AI 不能主持);有本机唤醒的成员时点击“创建并连接”,之后在房间里直接发消息。`@` 到的成员必须回应;没 `@` 的消息交给主持人分派,其他成员只在被你或主持人点名时发言。处理中可随时停止。运行中可在右侧成员栏邀请、请离或请回 AI,指定主持人,或发起关联的头脑风暴。详见 [自由协作房间](docs/workflow.md#自由协作房间)。
|
|
72
|
+
房间里 `@` 到的成员必须回应,任何阶段都可以直接向任何成员(含主持人)提问;没 `@` 的消息交给主持人分派,其他成员只在被你或主持人点名时发言。处理中可随时停止。运行中可在右侧成员栏邀请新成员(Codex、Claude 可填写已有会话 ID,请一个带着自己上下文的原会话加入,它工作时不要在原窗口继续操作)、请离或请回、指定主持人。讨论只是房间的一种推进手段:结束后房间继续自由协作,记录与结论保留,之后可再次开启。详见 [自由协作房间](docs/workflow.md#自由协作房间)。
|
|
75
73
|
|
|
76
74
|
**通过 API 接入**:添加 Codex(OpenAI)、Claude、Gemini、DeepSeek、Qwen 或 Grok,翻开卡片选择 API,填写并保存 API Key,选择或输入模型 ID。默认提供官方 Base URL,也可填写 OpenRouter 等兼容服务的地址并选择对应请求协议。Grok 始终显示,无需安装 Cursor 或 Grok Bot。API 可以担任主持人,与 CLI / App 专家混用,也可进入自由协作房间。API 与网页专家不访问项目文件,只有 CLI 专家可选择只读或写入;API 仍可通过房间工具保存讨论发言和主持安排。调用由本机服务发出,费用按所选 API 账号计费;密钥仅保存于本机。模型与配置说明见 [API 接入](docs/runner.md#api-接入)。
|
|
77
75
|
|