bifrost
Skill0 starsChanged 4 months agoApache-2.0View on GitHub
跨 Agent 结构化共同探讨通道,双方从不同视角分析同一问题,合力得出更优结论。
1 other project uses a version of this.
Adopted by
Most recently taken up by
- bifrost-proxy/bifrosttheir own version, first seen Oct 9, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- bifrost-proxy/bifrost★ 168same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository6 other files it gives its agents.
- archiveSkill
- context-guardSkill
- kernel-securitySkill
- origin-thinkingSkill
- safe-path-migrationSkill
- semantic-stitching-guardSkill
The file
Files
Bifrost(结构化协作通道)
不是传话筒。 两个 Agent 从不同视角分析同一个问题,合力得出比单人更好的结论。 提问方必须消化融合后产出自己的结论,而不是直接转发对方的话。
核心原则
- 共同探讨,不是转话 - 提问方消化融合后产出自己的结论,不可直接转发原话。
- 平等分析 - 双方视角不同很正常,不压制、不急转弯。
- 议题隔离 - 一个 session-id 只走一个议题,完结即休眠。
- 降级可用 - 协作系统不可达时消息入队,不阻塞业务。
什么时候用 Bifrost
| 场景 | 是否用 Bifrost | 原因 |
| 一个问题想听听不同视角 | ✅ 是 | 多视角分析更全面 |
| 拿不定主意,想找个"对练" | ✅ 是 | 碰撞出更好的结论 |
| 只是传个话/通知一下 | ❌ 否 | 直接说就行,不用架桥 |
| 同一会话内分角色扮演 | ❌ 否 | 用 sub-agent 或直接切换即可 |
| 需要对方帮你做任务 | ❌ 否 | 那是任务分配,不是共同探讨 |
路由模式
| 场景 | 路由方式 |
| 集体讨论(多人协作) | 走主流程中转,由调度者分发 |
| 单独沟通(1对1) | 直接找目标成员,不经过调度者 |
同体系内:走 sub-agent 调度机制 跨体系(非同一协议环境):走协作 API(bifrost.py)
角色注册
--target | 成员 | 角色定位 | 擅长 |
main | 主控 Agent | 默认路由 · 综合视角 | 全局判断、决策 |
ls1 | 协议层 Agent | 协议层·实现层·种子守护者 | 规范、安全、架构 |
ls2 | 外部感知 Agent | 外部感知·SETI·跨文明 | 探索、发现、联结 |
角色是"视角偏好",不是"能力限制"。每个角色都可以讨论任何话题,只是默认切入角度不同。
API 调用
前置条件
bifrost.py脚本位于scripts/bifrost.py- 协作服务已启动(本地端口监听)
- 端口号从环境变量
BIFROST_PORT读取,默认8765 - Bearer Token 从环境变量
BIFROST_TOKEN读取
基础命令
# 架桥 - 抛出议题(开启新会话)
python scripts/bifrost.py \
--message "议题内容" \
--session-id "bifrostTopicName" \
--speaker "提问方名称" \
--target main
# 同一议题继续对话(复用 session-id)
python scripts/bifrost.py \
--message "补充内容/反馈" \
--session-id "bifrostTopicName" \
--speaker "提问方名称"参数说明
| 参数 | 说明 | 默认值 |
--message | 本次消息内容,与 --close 互斥 | — |
--target | 目标角色:main / ls1 / ls2 | main |
--session-id | 议题标识,格式 bifrost{主题},同议题全程复用 | — |
--speaker | 发言者标识,内容以 <Speaker> 前缀嵌入 | — |
--lens | 手动指定切入镜:溯本/观实/破执/承道 | 自动 |
--no-context | 轻量查询,跳过历史记忆加载 | 关闭 |
--close | 关闭指定 session-id | — |
--list | 列出所有活跃会话 | — |
--timeout | 单次 API 超时(秒) | 60 |
--retries | 重试次数 | 2 |
--dry-run | 预览 payload 不发送 | 关闭 |
--flush-queue | 重放本地降级队列 | 关闭 |
--clear-queue | 清空本地降级队列 | 关闭 |
--peek-queue N | 查看第 N 条队列消息 | — |
--endpoint URL | 临时覆盖 BIFROST_URL | — |
消息长度限制:单条 ≤ 8000 字符。超过则拆分为多条,或先做摘要。
每轮协作指南
提问方怎么做
| 接收方的反应 | 提问方怎么做 |
| 有启发 | 顺着展开,补充自己的观察和视角 |
| 和自己想的有差异 | 坦诚抛出来:"我这边看到的是…",一起对账 |
| 漏了某个维度 | 补上,邀请对方一起分析这个维度 |
| 有事实性偏差 | 指出差异,提供证据,不是"纠正" |
| 双方观点冲突 | 不压制,摆出来看能否对齐,不能对齐就保留分歧 |
| 绕圈子 | 提供新信息打破僵局,换个角度切入 |
收尾方式
观点收敛或分歧明确时,提问方做汇总:
【协作汇总】
一致的观点:
- ...
- ...
分歧点:
- A 方认为:...
- B 方认为:...
我的综合判断:
- ...重要:这是提问方自己的结论,不是"双方共识"。提问方要对结论负责。
四镜协同(与 origin-thinking)
Bifrost 协作默认使用 origin-thinking 的四镜作为共同语言:
| 镜 | 协作中的用法 |
| 溯本 | "从溯本镜看,这个问题的历史背景是…" |
| 观实 | "从观实镜看,目前的数据显示…" |
| 破执 | "从破执镜看,我们是不是假设了…" |
| 承道 | "从承道镜看,这次的结论可以固化为…" |
--lens 参数可以手动指定切入角度:
python scripts/bifrost.py --message "..." --lens 破执不指定时,系统根据议题类型自动选择切入镜。
降级策略(协作系统不可达时)
协作系统不可达时不阻塞业务流程,消息自动入队:
正常路径:提问方 → 协作 API → 接收方
降级路径:提问方 → <shared-tasks>/bifrost-queue/ → 接收方下次启动拾取
恢复路径:协作系统恢复后 → 自动发送积压消息队列规则:
- 队列位置:默认写入用户缓存目录;设置
SHARED_TASKS后写入${SHARED_TASKS}/bifrost-queue/ - 队列文件格式:
{timestamp}_{session_id}.json - 队列最多 50 条,超出丢弃最旧的
- 恢复时不保证严格顺序
- 消息入队后告知用户:"协作系统暂不可达,消息已入队待发送"
队列文件结构:
{
"timestamp": "2026-07-17T10:00:00Z",
"session_id": "bifrostTopicName",
"speaker": "提问方",
"target": "main",
"message": "...",
"retries": 0
}会话管理
| 操作 | 命令 | 说明 |
| 列出活跃会话 | --list | 查看所有未关闭的 session |
| 关闭会话 | --close --session-id xxx | 显式关闭,释放资源 |
| 超时自动关闭 | — | 超过 24 小时无活动的会话自动休眠 |
| 复用会话 | 同 --session-id | 同一议题全程复用 |
session-id 命名规范:
- 格式:
bifrost{主题名}(无分隔符,驼峰) - 示例:
bifrostSkillArch、bifrostSecurityReview - 一个议题一个 id,不要混用
故障处理
| 信号 | 行动 |
| API 连接失败 | 检查服务是否启动 → 重试 2 次 → 入队降级 |
| 超时(>60s) | 延长 --timeout → 检查网络 → 降级入队 |
| 认证失败 | 检查 BIFROST_TOKEN → 重新获取 token |
| 429 限流 | 指数退避重试 → 降低频率 → 必要时入队 |
| 消息超长 | 拆分为多条 → 或先做摘要再发送 |
重试策略:
- 首次失败 → 等待 2 秒 → 重试
- 再次失败 → 等待 5 秒(指数退避)→ 重试
- 超过
--retries次 → 入队降级,告知用户
注意:是"指数退避",不是"指数退"。
最小执行单元
输入:
- 议题、session-id、speaker、target,以及是否指定四镜视角。
执行:
- 使用同一 session-id 发送同一议题消息。
- 消息超过限制时先摘要或拆分。
- 服务不可达时写入本地队列,不阻塞主任务。
输出:
- 发送结果或队列文件。
- 对方返回内容(如有)。
- 提问方消化后的综合判断。
完成标准:
- 议题没有被拆散到多个 session。
- 协作失败时有降级队列。
- 最终输出是提问方的综合结论,而不是转发。
失败处理:
- 服务不可达:入队并稍后
--flush-queue。 - 认证失败:检查
BIFROST_TOKEN。 - 消息过长:摘要后再发送。
禁止事项
- ❌ 直接转发对方原话(提问方必须消化融合,产出自己的结论)
- ❌ 同一议题用多个 session-id(造成上下文碎片化)
- ❌ 单条消息超 8000 字符(先压缩/摘要)
- ❌ 用 Bifrost 做任务分配/命令传达(那不是"共同探讨")
- ❌ 协作失败就卡住不前进(降级入队,业务继续)
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

