@fastcar/aimetting
v0.0.1
Published
AI 头脑风暴会议 — 多 LLM 模型自动开会,npx 一键启动 Web 界面
Maintainers
Readme
AI Meeting
AI Meeting 是一个本地运行的 AI 头脑风暴会议应用,支持多个 OpenAI 兼容 LLM 一起开会、讨论议题、生成决策和会议纪要。
本项目定位为简单的 AI 会议评审引擎:负责发起会议、生成纪要、导出实现目标清单和提供 HTTP/Web 能力。它不会调用 Codex、Kimi CLI、Claude Code,也不负责需求到代码实现的自动化编排;这类闭环流程建议放在外部 orchestrator 项目中,通过 CLI 或 HTTP 调用本包。
特性
- 多 LLM 参会:每个成员可配置独立模型、Base URL、API Key 和人设
- 多会议模式:自由讨论、圆桌辩论、主持人主导、创意冲刺、决策评审
- 本地持久化:成员、会议记录和 Markdown 纪要保存在本地
data/ - 本地资料检索:会议可配置文件/目录作为参考资料
- 上下文压缩:主持人 LLM 生成摘要 + 最近 N 轮上下文
- 实现目标清单:填写实现目标后,主持人会在会议纪要后单独输出一份可执行清单
- 并行会议:支持多场会议同时运行
- Web UI:暗色科技风,按会议模式切换布局
- npx 一键启动
快速开始
npx ai-meeting启动后终端会输出实际访问地址。默认会在高位端口中随机选择一个可用端口,并尽量避开常见服务端口,例如:http://localhost:43127
自定义端口和数据目录:
PORT=8080 AI_MEETING_DATA=./data npx ai-meeting等价显式启动命令:
ai-meeting serve --port 8080 --data ./dataCLI 用法
除启动 Web 服务外,CLI 也可以作为外部编排器调用的稳定入口,从需求文件发起一次会议评审并导出结果。
ai-meeting meeting:create --from docs/requirement.md --out review.md --mock-members
ai-meeting meeting:export --id <meeting-id> --out review.md
ai-meeting meeting:checklist --id <meeting-id> --out checklist.md常用参数:
--from/-f:需求文件路径。--goal:直接传入需求文本。--data/-d:数据目录,默认./data或环境变量AI_MEETING_DATA。--member <id,id>:指定已有本地成员,至少 2 位。--mock-members:本地无成员时创建两个 mock 成员,适合离线评审或自动化测试。--kind markdown|checklist:meeting:create后导出完整纪要或目标清单。--json:输出机器可读 JSON,方便外部 orchestrator 解析会议 ID 和导出路径。
meeting:create 默认会等待会议结束并持久化结果;如果只想创建记录后由 Web/HTTP 侧继续处理,可传 --no-wait。
HTTP API
Web 服务启动后,外部系统可以通过 HTTP 调用会议能力:
POST /api/meetings
GET /api/meetings
GET /api/meetings/:id
GET /api/meetings/:id/markdown
GET /api/meetings/:id/implementation-checklist
POST /api/meetings/:id/resume
POST /api/meetings/:id/recreate
POST /api/meetings/:id/stop这些接口只负责会议生命周期和结果导出,不包含自动修改代码、调用 Coding Agent 或多轮实现编排。
本地开发
pnpm install
pnpm build
pnpm dev使用 @ai-meeting/core
import { createMeeting, ParticipantStore } from '@ai-meeting/core';
const store = new ParticipantStore('./data');
const member = store.add({
name: 'Mock 产品经理',
model: 'mock',
baseURL: 'mock',
apiKey: 'mock',
persona: '你是一位产品经理。',
temperature: 0.8,
});
const meeting = createMeeting({
topic: '讨论 MVP 功能范围',
mode: 'free-discussion',
participants: [
{ type: 'saved', memberId: member.id },
{ type: 'inline', config: { name: 'Mock 技术专家', model: 'mock', baseURL: 'mock', apiKey: 'mock', persona: '你是一位技术专家。', temperature: 0.8 } },
],
maxRounds: 2,
hostConfig: { name: '会议主持人' },
}, store);
for await (const event of meeting.run()) {
console.log(event);
}实现目标清单
创建会议时可以填写“实现目标”,例如“输出本周可落地的开发任务清单,包含验收标准和优先级”。填写后,会议收尾流程会分两步执行:
- 主持人先生成最终会议纪要,包含会议总结、关键决策和行动项。
- 主持人在会议纪要之后单独输出一份
## 结合实现目标的清单,再结束会议。
这份清单不是只根据实现目标单独生成。主持人会结合以下上下文进行整理:
- 用户填写的实现目标
- 已生成的会议总结
- 关键决策
- 行动项
- 阶段性小结、压缩摘要和精简会议发言材料
清单会以主持人发言事件单独出现在会议流程中,同时也会被保留在会议纪要面板和导出的 Markdown 中,便于后续执行和验收。
会议结束后可以导出两类 Markdown 文件:
导出 Markdown:导出完整会议纪要,包含会议总结、关键决策、行动项、实现目标清单和完整发言记录。导出目标清单:只导出独立的实现目标清单文件,接口为GET /api/meetings/:id/implementation-checklist。该文件优先使用主持人在会议纪要后单独输出的清单;如果历史会议没有这条独立主持人发言,则回退使用会议纪要里的targetActionItems。
安全说明
API Key 仅保存在本地 data/participants.json,data/ 已加入 .gitignore。不要将该目录提交到仓库。
