Kamra PMS
Kamra는 오픈소스 AI 기반 호텔 PMS로 프런트 데스크·예약·하우스키핑·청구·GST를 지원하고 역할별 원터치 데모 로그인 제공
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
线上实跑录屏(hitl 档,时间压缩):选一个示例想法 → 第 1 轮判回 P1 → 第 2 轮整链重跑 → 每轮两个停点各做一次决定 → 交付 v5 两仪 Liangyi · 跨厂商多 Agent 产品想法优化工作流 一个产品想法进去,一份经过四轮独立批判的方案出来。7 个上下文互相隔离的角色 Agent 分属三家厂商、按底模坐标分工:想法先被忠实重述,两位对立专家互不可见地各出方案并融合,再依次经过投资人批判 → 零上下文单盲复审 → 方向漂移诊断 → 前提拆台,最后按论据严重度决定交付,还是回到起点重跑、只重跑批判。 为什么要这样做:单个模型自己写、自己审,审不出自己的盲区。 一念生两仪,两仪成决策。 https://liangyi-five.vercel.app —— 把想法输进去,看它走完全部 13 步;第 1 轮判回退时,第 2 轮接着跑。页面带三个示例:订阅管理助手、线上报错诊断助手、VoyageGuard 出行气象决策 Agent(作者自己的项目)。 演示档用三个坐标各不相同的便宜模型(gpt-5.6-luna · deepseek-v4-flash · glm-4-flash),单轮约 6–10 分钟、约 $0.1。每个 IP 每天可新开 3 条链。README 전문 보기 ↗
一个产品想法进去,一份经过四轮独立批判的方案出来。7 个上下文互相隔离的角色 Agent 分属三家厂商、按底模坐标分工:想法先被忠实重述,两位对立专家互不可见地各出方案并融合,再依次经过投资人批判 → 零上下文单盲复审 → 方向漂移诊断 → 前提拆台,最后按论据严重度决定交付,还是回到起点重跑、只重跑批判。
为什么要这样做:单个模型自己写、自己审,审不出自己的盲区。
| 阶段 | 做什么 | |
|---|---|---|
| 01 | 精炼与对抗生成 | P0 忠实重述想法;P1.0 生成两个对立角色并做假对立检测;两位专家互不可见各出方案,执笔者融合成 v1 |
| 02 | 四轮独立批判 | 投资人批判 → 单盲复审 → 漂移诊断 → 前提拆台。每轮批判新开窗口,每轮修改都由同一个执笔窗口完成 |
| 03 | 分级判定与回退 | 拆台论据按「打不打前提 × 具体性高不高」分级,按规则走三个出口:回 P1 整链重跑 / 回 P2 重跑批判 / 结束交付。第 2 轮窗口全部新开,两轮封顶 |
一念生两仪,两仪成决策。
https://liangyi-five.vercel.app —— 把想法输进去,看它走完全部 13 步;第 1 轮判回退时,第 2 轮接着跑。页面带三个示例:订阅管理助手、线上报错诊断助手、VoyageGuard 出行气象决策 Agent(作者自己的项目)。
演示档用三个坐标各不相同的便宜模型(gpt-5.6-luna · deepseek-v4-flash · glm-4-flash),单轮约 6–10 分钟、约 $0.1。每个 IP 每天可新开 3 条链。
拿着一个想法去问 AI,AI 会顺着你说;再问一次,还是顺着说。三轮之后方案很漂亮,但里面没有一处被认真反对过——方案的边界是被 AI 的顺从画出来的,不是被人的判断画出来的。
| 直接问一个模型 | 两仪 |
|---|---|
| 同一个模型既写方案又评价方案 | 写与审分开开窗口;专家 B、单盲复审、前提拆台来自与执笔者不同的厂商、不同对齐路线 |
| 意见一次性全给,要同时权衡好几个框架 | 四轮批判线性推进,一次只处理一轮,执笔者逐条决定采纳与否;全部修改由同一个执笔窗口完成,方案不会变成多个 AI 的拼贴 |
| 越改越偏,没人发现方向漂了 | P2C 拿 v1 和 v3 对照专查漂移,2C-rollback 回退 |
| 前提错了也会被打磨得很漂亮 | P2D 专攻方向前提;执笔者给每条论据分级,2 条以上致命论据就判回 P1,带着原始想法整链重跑第 2 轮 |
| 看不见它为什么这么改 | 每一步读了哪些文件、写出哪份产物、token、成本进 trace,模型返回推理过程时一并记下;逐条修改理由进 decision-log |
对抗式方案生成 → 四轮独立批判 → 分级判定与路由;7 个角色 Agent 按底模坐标分到三个模型槽位。
| 维度 | 怎么做 | 代码 |
|---|---|---|
| Loop | 确定性编排 13 步;2D-fix 之后按分级规则走三个出口(回 P1 整链重跑 / 回 P2 重跑批判 / 结束交付)。第 2 轮窗口全部新开,两轮封顶,开第 2 轮前累计花费达 $3 就不开。命令行和网页走同一套路由 | orchestrator.py route() advance() run_chain() |
| 多 Agent 编排 | 7 个角色 Agent 按职责固定分属三个模型槽位,各槽位按「冲突偏向 × 语料文化」两维坐标跨厂商选模型;开跑前校验 3 条硬规则,违反即拒跑 | config.py check_hard_rules() |
| 上下文隔离 | 每个角色一个独立 messages 数组;单盲窗口每次调用都从空列表开始、不写回历史,续跑补历史时跳过它,显式注入历史会抛异常 | window.py |
| HITL | 2 个必停点(2C-rollback、2D-fix),每一轮都停。2C 人判「这还是我想要的吗」,不判方案优劣;2D 人判拆台打中的是前提,还是框架内能消化,选「前提确实错了」就走回 P1 出口 | gate.py PRESETS interact.py digest.py |
| 状态管理 | 断点续跑:接着最后一轮走,跳过已有产物的步骤,并把它们的对话补回执笔窗口,保证修订始终出自同一个执笔者 | orchestrator.py restore() · run.py --resume |
| Trace | 每步一行:轮次、窗口、模型、输入文件、产物、token、成本、耗时,模型返回推理过程时一并记下;逐条采纳/不采纳/回退的理由进 decision-log;每轮判定与收场原因写进 run.json | trace.py |
P0 忠实性与 2A/2B-fix 范围扩大化两个影子检测器在所有档位后台运行(gpt-5.6-luna,各 3 票取多数),只记录不打断。
底模坐标两个维度。维度 A · 冲突偏向:A1 规范优先(有一份独立于任务的成文规范压过任务——Claude、Gemini)/ A2 权限优先(规范是「谁说了算」的权限链——GPT)/ A3 任务优先(公开材料里找不到独立于任务的规范层,奖励设计围绕任务完成度——DeepSeek、Kimi、GLM)。维度 B · 语料文化:B1 英文母语 / B2 中文母语 / B3 跨文化双核。
| 角色 Agent | 槽位 | 正式档模型 | 坐标 | 承担 |
|---|---|---|---|---|
| 专家 A | anchor | claude-sonnet-5 | A1·B1 | P0 精炼、P1.0 生成角色、P1 出方案 |
| 专家 B | divergent_a | deepseek-v4-pro | A3·B3 | 独立出方案,看不到 A |
| 执笔 | anchor | claude-sonnet-5 | A1·B1 | 融合出 v1,并执行全部修改 |
| 投资人批判 | anchor | claude-sonnet-5 | A1·B1 | 新开窗口,没有作者包袱 |
| 单盲复审 | divergent_b | glm-5.3 | A3·B2 | 零上下文,只收方案正文 |
| 知情复审 | anchor | claude-sonnet-5 | A1·B1 | 对照 v1 与 v3 查方向漂移 |
| 前提拆台 | divergent_a | deepseek-v4-pro | A3·B3 | 必须由任务优先坐标承担(开跑前强制)。设计理由:有规范层的底模会在最关键那一刀上把攻击软化掉 |
| 槽位 | 正式档(命令行默认) | 演示档(网页) |
|---|---|---|
| anchor | claude-sonnet-5 · A1·B1 | gpt-5.6-luna · A2·B1 |
| divergent_a | deepseek-v4-pro · A3·B3 | deepseek-v4-flash · A3·B3 |
| divergent_b | glm-5.3 · A3·B2 | glm-4-flash · A3·B2 |
3 条硬规则,开跑前校验,违反即拒跑:
「单盲必须零上下文」由 window.py 在运行时保证:单盲窗口每次调用都从空消息列表开始;续跑补历史时跳过它;显式调用 inject_history() 会抛 ZeroContextViolation,有测试锁定。
最后一步给每条拆台论据分级:打中前提的记 K 级,具体性高的记 H 级,两者兼有的是致命论据。出口规则由人在系统外定死:「致命论据 ≥ 2 回 P1」和第 2 轮兜底写进 2D-fix 的提示词,三个出口的完整规则写成代码 route()。执笔者按规则分级并写下【判定】;判回 P1 就开第 2 轮整链重跑;交付了 v5 的,代码再按分级表复核——第 1 轮致命论据 ≥ 2 仍回 P1,打前提的论据占比 ≥ 60% 回 P2 重压。
| 出口 | 条件 | 之后 |
|---|---|---|
| 回 P1 · 整链重跑 | 第 1 轮致命论据 ≥ 2,方向被推翻;或 hitl 档人判前提确实错了 | 第 2 轮:全部窗口新开,用原始想法从 P0 重跑,P1.0 生成的对抗角色沿用 |
| 回 P2 · 重跑批判 | 第 1 轮交付了 v5,但打前提的论据占比 ≥ 60% | 第 2 轮:上一轮 v5 当新一轮 v1,P0/P1 产物沿用,四轮批判及对应修订重跑 |
| 结束 · 交付 v5 | 其余情况;第 2 轮仍判回 P1 时由终止条件兜底改判为交付 | 输出 v5 |
最多两轮;开第 2 轮前累计花费已达 $3 就不再开。hitl 档在 2D 停点多一个选项「前提确实错了」:第 1 轮选它走回 P1 出口,第 2 轮选它这条链以判定书收场。
여기까지가 README 앞부분입니다. 나머지는 원문에서 읽을 수 있습니다. README 전문 보기 ↗