ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

OpenBot Prompt 驱动 Agent 机制:动态指令生成与会话生命周期完全指南

OpenBot Prompt 驱动 Agent 机制:动态指令生成与会话生命周期完全指南
  • 桌面应用
  • 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.

项目地址:https://gitcode.com/GitHub_Trending/openbo/openbot
点击查看免费下载

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.

项目地址:https://gitcode.com/GitHub_Trending/openbo/openbot
点击查看免费下载

相关推荐

上一篇:从源码到插件:OBS-captions-plugin编译安装的完整步骤(Windows/macOS/Linux)
下一篇:深入解析 TanStack Table 的 CustomSortFns:自定义排序函数的类型契约与源码实现

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进