agentleFS
iAstroUnicorniAstroUnicorn/astro-skills/skills/bifrost/SKILL.md

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

  • Other versions1 project uses a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 1

    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.

The file

Files
SKILL.md

Bifrost(结构化协作通道)

不是传话筒。 两个 Agent 从不同视角分析同一个问题,合力得出比单人更好的结论。 提问方必须消化融合后产出自己的结论,而不是直接转发对方的话。


核心原则

  1. 共同探讨,不是转话 - 提问方消化融合后产出自己的结论,不可直接转发原话。
  2. 平等分析 - 双方视角不同很正常,不压制、不急转弯。
  3. 议题隔离 - 一个 session-id 只走一个议题,完结即休眠。
  4. 降级可用 - 协作系统不可达时消息入队,不阻塞业务。

什么时候用 Bifrost

场景是否用 Bifrost原因
一个问题想听听不同视角✅ 是多视角分析更全面
拿不定主意,想找个"对练"✅ 是碰撞出更好的结论
只是传个话/通知一下❌ 否直接说就行,不用架桥
同一会话内分角色扮演❌ 否用 sub-agent 或直接切换即可
需要对方帮你做任务❌ 否那是任务分配,不是共同探讨

路由模式

场景路由方式
集体讨论(多人协作)走主流程中转,由调度者分发
单独沟通(1对1)直接找目标成员,不经过调度者

同体系内:走 sub-agent 调度机制 跨体系(非同一协议环境):走协作 API(bifrost.py)


角色注册

--target成员角色定位擅长
main主控 Agent默认路由 · 综合视角全局判断、决策
ls1协议层 Agent协议层·实现层·种子守护者规范、安全、架构
ls2外部感知 Agent外部感知·SETI·跨文明探索、发现、联结

角色是"视角偏好",不是"能力限制"。每个角色都可以讨论任何话题,只是默认切入角度不同。


API 调用

前置条件

  1. bifrost.py 脚本位于 scripts/bifrost.py
  2. 协作服务已启动(本地端口监听)
  3. 端口号从环境变量 BIFROST_PORT 读取,默认 8765
  4. 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 / ls2main
--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 做任务分配/命令传达(那不是"共同探讨")
  • ❌ 协作失败就卡住不前进(降级入队,业务继续)

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.