什么是会话
会话是你与 Agent 之间的一条持久对话线程。它存在于守护进程,而非任何客户端;聊天记录、工具事件和恢复状态能跨守护进程重启保存,Web UI、CLI、TUI、编辑器和 IM 渠道看到的是同一会话。关闭浏览器标签或终端不会丢失对话。 每个会话都会记录不可变的OperationSource 来源,描述创建它的界面、客户端和由服务器标记的语义传输,详见 operation-source.md。独立聊天与项目会话遵循同一协议;项目是持久工作区和成员环境,其中每段对话都是独立会话,拥有自己的记录、成员绑定、生命周期和可选计划。
创建和继续会话
Web。 运行monad(或 monad up)启动守护进程并打开 Web UI。在首页编辑器创建会话,并可在首次发送前选择 Agent;已有会话会从上次位置继续。
CLI。 monad chat 是对话入口:
/ 可打开命令与技能菜单:/new 新建会话,/sessions 列出会话,/switch 切换会话,/handoff 总结当前对话并在新会话继续。所有界面(包括 IM 渠道)使用相同命令;技能菜单见 skills.md。
分支与恢复
- **分支(Branch)**把截至所选消息的历史复制到一个独立新会话。源会话不变,之后两边互不影响。适合尝试不同方案、带完整上下文询问支线问题或比较方向。
- **恢复(Restore)**在原会话内回退到较早消息检查点,并丢弃其后内容。它会改写会话本身,因此 Web UI 会要求确认。
OperationSource 不是客户端可配置的权限列表。
审批
当 Agent 要运行高风险工具,例如 shell 命令、写入沙箱外文件或使用自行编写的技能时,调用会停在审批门,直到人作出决定;等待期间不会执行任何操作。 Web UI 会在记录中显示审批卡片及工具和输入。你可以:- 仅批准一次:只允许本次调用
- 本会话内批准:在当前会话余下时间记住决定
- 始终允许:全局记住决定;控制真实机器的 host-control 工具最多只能获准到会话范围
- 拒绝:拒绝调用,并让 Agent 在不执行它的情况下继续
Agent
Agent 是会话使用的配置角色,包括名称、系统提示词、模型配置、技能集、工具暴露、沙箱模式和限制。一个守护进程可定义多个 Agent,每个会话创建时绑定一个;未选择时使用agents.json 中的 agent.defaultAgentId。
在 Web UI 的 Studio 中编辑 agent.agents,可设置:
modelAlias和按角色覆盖的模型skills:每个 Agent 的技能自动加载覆盖atoms:Agent 可使用的工具与能力sandbox、maxTurns、maxBudgetUsd:隔离和费用限制
agentId 指定 Agent。会话创建后绑定固定;要换配置,请用 /handoff,或分支到由另一 Agent 创建的新会话。
跨客户端观察会话
会话属于守护进程,因此任一客户端都能观察另一客户端驱动的会话。Telegram 发起的对话会出现在 Web UI 中并实时流式显示,monad session watch <id> 也能跟踪同一批事件。部分写入和分支路径目前实施服务端语义传输限制,因此能观察不代表每个入口都能修改;这是明确的临时架构例外,不是可配置来源策略。
数据存放位置
所有数据都在本地。会话、配置、凭据、技能和记忆位于守护进程主目录:macOS 的~/.monad、Linux 的 XDG 目录或 Windows 的 %APPDATA%/monad;MONAD_HOME 可覆盖。守护进程默认只监听回环地址,除你配置的模型调用外,不会把会话数据发出设备。传输与安全模型见 runtime.md。