- 桌面应用
- AI Agent
- 人工智能
- 多智能体
- 代码智能体
- 浏览器控制
- 本地部署
- MCP 服务
【免费下载链接】openbot
A local-first desktop workspace for persistent AI teammates. Run Codex, Claude, and Grok with dedicated workspaces, task queues, file sharing, browser control, and agent-to-agent collaboration.
OpenBot 是一个 local-first 桌面工作台,让你用自然语言(Prompt)创建、编辑和管理多个持久 AI 队友——Codex、Claude、Grok 等。它的核心亮点是Prompt 驱动的 Agent 机制:每轮对话都会动态生成开发指令(developer instructions),并通过会话指纹、handoff 交接等机制管理会话的生命周期。本文将带你快速理解这套机制是如何运作的。
一句话创建 Agent:Prompt 驱动的团队搭建
在 OpenBot 里,你不需要填表单来创建 Agent——直接对任意 Agent 说“帮我建一个负责 GitHub 问题的队友”即可。
- Agent 会调用
openbot.create_agent工具,生成一个带专属指令、工作区和首个任务的持久队友; - 用
openbot.update_profile可随时修改名字、职责描述、头像、模型甚至访问权限; - 新 Agent 默认继承创建者的 provider、模型和权限上限,权限只能被收窄、不能被放大。
工具的名称、描述和参数定义都集中在 src/backend/openbot-tools.ts,完整设计说明见 docs/architecture/agents.md。
动态指令生成:每轮对话都在“现场组装”
传统做法是把系统提示词写死在配置里。OpenBot 不同:它在每次会话启动或恢复时,根据 Agent 的实时状态现场组装一份“开发指令”,核心函数是:
- developerInstructions():把 Agent 档案、工作目录、共享目录、沙箱策略、记忆、队友列表等拼装成完整指令;
- ThreadLifecycle.#instructions():按 provider 决定记忆和队友信息放入系统提示还是随轮次下发(例如 Claude 走随轮下发,避免重写提示缓存)。
这份指令里动态包含的内容包括:
| 动态内容 | 作用 |
|---|---|
| Agent 档案(名字、职责) | 作为“长期使命”,比通用规则优先 |
| 工作目录与共享目录 | 告诉 Agent 文件放哪里 |
| 沙箱/访问模式 | 明确它能写哪些目录、如何申请审批 |
| 侧边栏队友清单 | 让 Agent 优先委派给合适的队友 |
| 记忆与记忆预算 | 以“不可信数据”标签注入,防提示注入 |
| Computer Use / 密码保险库状态 | 按开关变化生成不同操作指引 |
也就是说,你每次在设置里改动 Agent 的权限或团队成员,下一轮对话的指令就会自动更新——无需重启、无需手动同步。
会话生命周期:启动、恢复、交接三件事
1. 启动与恢复:指纹机制保证“该换就换”
每个 provider 会话创建时,OpenBot 会计算一个 SHA-256 工具指纹(toolFingerprint()),把 MCP 服务器、审批策略、Agent 档案、队友成员等全部折进去。恢复会话时:
- 指纹一致 → 直接续用旧会话,保留 provider 历史和提示缓存;
- 指纹变化(比如你改了 Agent 职责描述或新增了 MCP 服务器)→ 用一个带“历史 handoff”的新会话替换旧会话,Agent 身份、工作区、对话记录都不变。
这样既避免了旧配置“僵尸会话”,又不会无谓丢掉上下文。
2. 跨 Provider 切换:工作日志随迁移一起走
把 Agent 从 Codex 换到 Claude 时,OpenBot 会在旧会话退役前读取最近 60 轮的工作步骤(命令、改动的文件、工具调用),写入 handoff 文件,新 provider 恢复后能“接得上话”,而不是从零开始。
3. 定时任务:短命会话 + 摘要回传
Routine 运行不占用主聊天会话:DrainScheduler 通过ThreadLifecycle.startRoutineThread启动一个ephemeral 会话,首条消息附带最近聊天的 8,000 字符摘要(renderRoutineHandoff());回合结束时closeRoutineThread关闭会话,非静默运行会把 1,500 字符的答案摘要追加回主会话的待办交接区。整套设计见 docs/architecture/agents.md 的 Routine sessions 一节。
对普通用户意味着什么?
- 改设置即生效:调整 Agent 职责、权限、团队成员后,无需手动“重启上下文”,下一轮自动带着新指令;
- 上下文永不失控:长对话会在窗口耗尽前自动压缩(compaction),Routine 用独立会话,主聊天保持干净;
- 切换模型无感迁移:换 provider 或模型时,工作日志随 handoff 迁移,任务不“失忆”;
- 安全边界写进指令:沙箱目录、审批规则、不可信内容防注入提示都是指令的一部分,且随配置实时更新。
小结
OpenBot 的 Prompt 驱动机制把“指令”从静态配置变成了每轮现场生成的动态产物:developer-instructions负责组装,指纹机制负责判断会话是否过期,handoff 机制负责让上下文在会话更替间无损传递。对新手而言,你只需要用自然语言表达需求——创建、修改、委派、交接——这套生命周期管理在后台默默完成。想深入了解,推荐阅读 docs/architecture/agents.md 与 docs/architecture/providers.md。
- 桌面应用
- AI Agent
- 人工智能
- 多智能体
- 代码智能体
- 浏览器控制
- 本地部署
- MCP 服务
【免费下载链接】openbot
A local-first desktop workspace for persistent AI teammates. Run Codex, Claude, and Grok with dedicated workspaces, task queues, file sharing, browser control, and agent-to-agent collaboration.
相关推荐
RPFM Server 会话(Session)机制与连接生命周期完全指南
RPFM Server 会话(Session)机制与连接生命周期完全指南 rpfm_server 是 Rusted PackFile Manager(RPFM)
桌面应用开发工具游戏开发NocoBase Token 安全策略完全指南:会话有效期、Token 生命周期与自动刷新机制详解
NocoBase Token 安全策略完全指南:会话有效期、Token 生命周期与自动刷新机制详解 Token 安全策略是 NocoBase 中用于平衡系统安全
低代码后端前端AI 应用Wazuh inventory_sync 压测发送器(benchmark_sender)状态机全解析:Agent 生命周期与会话状态机
Wazuh inventory_sync 压测发送器(benchmark_sender)状态机全解析:Agent 生命周期与会话状态机 导读 本文是 Wazuh
网络安全SIEM日志分析漏洞扫描应用安全
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考