Mirasim 文档
会话互联
在指令里用 @ 点名一个会话,智能体就能读取它、给它发消息,或新建一个会话。
会话互联能做什么
会话之间默认互相隔离。会话互联让一个会话的智能体可以读取另一个会话、给它发消息,或者新建一个会话。新建的会话有自己的对话记录,当前这一轮结束后仍会继续运行。
会话如何开启互联
互联自动开启。你在指令里用 @ 点名一个会话时,两端会就地开启互联,当轮即生效。智能体用 start_session 新建的会话也会自动开启。未开启互联的会话不会出现在其他智能体的列表里,也收不到消息。
在自己的指令里点名一个会话
在输入框里输入 @,在「对话」页签中选一个会话。每行显示标题、运行它的智能体,以及它在运行、空闲还是终端会话。选中后草稿里写入 @对话[会话名称]。一条消息最多展开三个会话。
点名只是指明这个会话,回车仍在当前会话里执行一轮。智能体是去读它、给它发消息还是等它跑完,取决于你在点名前后写的话。
- 「先读一下 @对话[登录改造] 现在到哪一步,再决定这边怎么改。」智能体会读取那个会话并汇报。
- 「把字段现在叫
tenant_id这件事告诉 @对话[登录改造]。」智能体会自己组织消息并发送。 - 「盯着 @对话[登录改造],它那一轮跑完了告诉我。」智能体会等那一轮结束后告诉你。
点击已发送消息里的点名,可以跳到对应会话。会话已改名或删除时,会提示找不到。
智能体拿到的工具
开启互联的会话中,智能体会拿到以下工具。
| 工具 | 它做什么 |
|---|---|
| list_sessions | 列出可寻址的已互联会话及其状态。默认只看当前工作区;要求查看全部时,还会列出其他工作区,以及你在其他空间和电脑上的会话。 |
| read_session | 读取另一个会话最近四轮的摘要(上限 2KB),以及它是否仍在运行。带等待选项时,对方这一轮结束即返回;等满五分钟仍未结束,则返回仍在运行。 |
| send_session_message | 给另一个会话发一条消息,回信也用它。单条文本上限 8KB,返回投递结果。 |
| read_session_message | 按消息 id 取回它发出或收到的某条消息的完整原文。 |
| start_session | 新建一个会话,指定智能体、模型、推理强度和开场任务。调用不阻塞,新会话的回信会作为消息返回。 |
消息如何送达
投递方式取决于目标会话当时的状态。
| 目标当时的状态 | 结果 |
|---|---|
| 空闲,或上一轮已经结束 | 立刻在目标会话起新的一轮,消息就是这一轮的输入。 |
| 正在运行,且该智能体支持中途输入 | 进入正在执行的一轮,在下一步被读到,不打断正在进行的工具调用。 |
| 正在运行但该智能体不支持中途输入,或正等你回答问题 | 暂存到下一个轮次边界再投递,最多等五分钟,超时则过期并提示。 |
| 没有开启互联 | 拒绝投递。 |
| 终端会话 | 可以被读取,但收不到消息。 |
收到的消息会标明来自哪个会话,不会显示成你自己说的话。点击来源可以跳到发送方会话。消息过期或投递失败时,会在发送方会话中提示。
上限与消息记录
- 发送频次
- 单个会话最多连发 30 条,之后每两秒恢复一条。30 秒内向同一会话重复发送相同文本会被丢弃。
- 链条深度
- 一条消息引发的接力最多 24 跳,有真人参与即重新计数。
- 乒乓熔断
- 两个会话在五分钟内互发超过 12 条,且双方都没有真人输入时,这一对会被熔断,界面上会显示。
每条消息都记录在本地 ~/.mirasim/messages/ 下,包括谁发给谁、原文和投递结果。按月分文件,保留 90 天,不上传。
# the last few messages this month, as they were recorded
tail -n 5 ~/.mirasim/messages/msgs-<YYYY-MM>.jsonl
# everything one session sent or received
grep '<sessionKey>' ~/.mirasim/messages/msgs-<YYYY-MM>.jsonl这一页有错或缺了什么? 告诉我们