← 笔记

笔记

QwenPaw 最新技术架构

·笔记

对照 v2.1.0 官方架构:QwenPaw 不是「LLM + 提示词」应用,而是跑在本机的常驻 Agent OS。内核是进程内的 AgentScope 2.0;工作区边界、请求生命周期、资源轴和信任主干是它自己的设计。2.1 没换内核,加的是 OS Shell、统一文件工作区和跨 Harness 接入。

一句话:QwenPaw 在 AgentScope 原语之上自建工作区边界、请求生命周期、资源轴和信任主干;2.1 再叠 OS Shell、统一文件工作区、跨 Harness 接入和长任务续接,没有改掉 2.0 的内核。

资料截止 2026-08-13 稳定版 v2.1.0。仓库里另有 2.1.1b1 预发布记录,本文以稳定架构面为准。


1. 它是什么

QwenPaw(Qwen Personal Agent Workstation)是 AgentScope 团队做的本机常驻个人智能体平台,Apache 2.0。一次安装可以托管多个互相隔离的智能体;数据默认落在你自己的磁盘上,不依赖第三方托管。

内核是进程内的 AgentScope 2.0:ReAct 循环、会话与可序列化状态、流式事件、工具层、工作目录抽象。它当库用,不另起一个运行时服务。

QwenPaw 在这些原语之上自建四样东西:

  1. 工作区边界:一智能体一目录,懒加载,默认互不可见。
  2. 请求生命周期:固定 8 阶段 Hook,外加三次固定步骤。
  3. 资源轴:工作区文件、记忆、Skills、驱动、模型。
  4. 信任主干:治理策略 + 工具守卫 + 原生 OS 沙箱 + Skill 扫描 + 加密密钥。

2. 四层怎么叠

官方把系统画成「上层 Runtime / 下层 Workspace ‖ Drivers」,底座是 AgentScope。人从频道进来,智能体从驱动出去,中间被工作区隔离。

入口人找智能体

Console、TUI、CLI、桌面应用、钉钉 / 飞书 / Discord 等频道。2.1 收成 OS Shell:窗口、启动器、任务栏、通知和保存布局。

↓ 统一成 AgentRequest,路由到目标工作区

Runtime请求调度

8-phase Hook · Slash 分发 · AgentBuilder 按请求组装 · AgentExecutor 跑 ReAct · SSE Envelope 流出。

↓ 每个智能体一个隔离工作区

Workspace资源 · 治理 · 沙箱

配置是 JSON,记忆是 Markdown,Skills 是文件夹。三大支柱:资源透明落盘、allow/deny/ask/sandbox、原生 OS 沙箱。

↓ 智能体找外部系统,不走频道协议

Drivers + 底座连接器与 AgentScope

MCP / A2A / ACP,加密凭据 + 按次策略门控。下面是进程内的 AgentScope 2.0:循环、会话、事件流、工具层。

入口 / 频道 Runtime 工作区 驱动与内核 请求向下走,凭据不回流入口
图 Agent OS 分层:频道是人找智能体,驱动是智能体找外部系统,两条故意拆开。

频道 ≠ 驱动。 频道把各 IM 的原生消息翻成统一请求,并自带访问控制、防抖和流式。驱动是协议中立的连接器层:声明端点、凭据引用和策略,系统从加密存储取密钥,再按次过门。目前落地的是 MCP;抽象比 MCP 宽,所以 A2A / ACP 能接到同一套凭据和策略下面。

工作区是隔离单位。 一个智能体对应一个磁盘目录,加上一组在它之上运行的实时服务(会话、记忆、连接器、频道、聊天、定时任务)。第一次被用到才懒加载;服务停止则干净退出。除非主动发消息或 spawn 子智能体,谁也看不到对方的文件、记忆和对话。整个工作区可以备份、恢复、纳入版本控制。


3. 一次请求怎么走

旧版把请求处理堆在超过 650 行的 query_handler() 里。2.0 改成固定骨架 + 可插拔 Hook,目标是「新功能 = 新 Hook,尽量不改 Runtime.run()」。

Runtime 是 per-workspace 编排器。每次请求调用 run(),产出 SSE 信封。匹配 slash 命令可 skip_agent,但 POST_RESPONSE 和 FINALLY 仍会跑,保证落盘和清理。

顺序 类型 阶段 / 步骤 做什么
1 Hook PRE_DISPATCH 规范化请求,slash 分发前
2 固定 SlashCommandRegistry 统一命令分发;命中则跳过智能体
3 Hook POST_DISPATCH 无匹配命令后继续
4 Hook PRE_AGENT_BUILD 加载会话、媒体、上下文
5 固定 AgentBuilder.build 按当前模式 / Skill / 策略组装无状态 Agent
6 Hook POST_AGENT_BUILD 注入模式上下文
7 Hook PRE_EXECUTE 首次初始化、提示词刷新、Skill 环境
8 固定 AgentExecutor.run ReAct 循环 + 心跳,审批等待时 SSE 不断
9 Hook POST_RESPONSE 保存会话、定时任务回写
10 Hook ON_ERROR 异常规范化
11 Hook FINALLY 取消回复、关连接器、重置请求状态;始终执行

Hook 可以 CONTINUE、SHORT_CIRCUIT(立刻回一条消息结束请求)或 SKIP_AGENT(跳过构建和执行,后续 Hook 仍跑)。同一阶段内按 before / after 拓扑排序,启动时检测环路。

AgentBuilder 每个请求重新组装:模型、Toolkit、系统提示、记忆、上下文策略。工具经 ToolRegistry 按激活条件(模式、Skill、功能、沙箱资源)过滤,再包治理层。资源调配和策略留在智能体之外,所以换模式、换 Skill、换审批级别不必改 Agent 类。

AgentMode 把命令、工具、Hook、提示词贡献者打成一个开关。Coding 模式加上项目目录内的搜索与 inline diff;Mission 模式先写计划,再按检查点迭代。另有 Normal / Goal,以及用户可编辑的 Oh-My-Paw 模式。

跨工作区只允许三个共享件,用 __slots__ 钉死:task_tracker、tool_coordinator、approval_coordinator。其余状态必须落在 per-agent 的 ServiceManager / WorkspacePlugins,防止串状态。


4. 三个控制平面

请求级、推理级、循环级各管一层,别混:

平面 作用域 典型职责
Runtime Hooks 整次请求 会话加载、slash 短路、媒体处理、Skill 环境、保存与清理
Middlewares 单次 reply 内 洋葱模型包裹 model call / acting / reply;截断、记忆注入
Loop Gates 每次 ReAct 迭代后 迭代上限、死循环检测、Mission 检查点、可组合审批

5. 记忆不是上下文

官方把这两个概念拆开,混用就会设计歪。

记忆 · 跨对话ReMe 默认 · Markdown 落盘 · 后台「做梦」
上下文 · 当前窗口默认总结 · 可选 Scroll 回放
图 记忆回答「以后还记不记得」;上下文回答「这一轮模型窗口里塞什么」。

记忆通过带 owner 的 backend registry 选择。默认后端是 ReMe:在透明的 workspace Markdown 上做召回、写入和整合。文件是 MEMORY.md 和 memory/YYYY-MM-DD.md。也可以装 ADBPG、PowerContext 等插件。后端不可用会明确失败,不会悄悄换库。2.1 增加 embedding 热更新、可选 rerank、3D 关系图。

上下文默认同样可插拔。窗口一满,就把较早轮次总结掉。可选的 Scroll 换思路:每一轮都持久化,滚出窗口的内容留精简索引,智能体用 recall 工具按需回放——长对话因此能完整找回,而不是只剩摘要。2.1:模型报超限时 Scroll 压缩并重试一次;Visual Compact 压多模态输入;长对话把精确历史移进可搜索索引,当前任务保留。


6. 信任主干

每一次工具调用、每一个对外动作,碰到机器或数据之前,都要先过这条链路。工具在组装时就已经包成 PolicyGuardedTool,智能体绕不开。

1. Agent 发起 tool call
↓ 策略四态
2. 治理:allow / deny / ask / sandbox
↓ 内容筛查
3. 工具守卫:路径 · Shell 规避 · 敏感文件
↓ 按次创建、用完销毁
4. 原生 OS 沙箱
↓
5. 审计写入 audit.db
裁决 / 隔离 检查 落盘
图 信任主干。ask 会弹到控制台或 IM;sandbox 强制进隔离,即使用户把审批级别关掉,声明需要沙箱的工具仍 fail-closed。
层 决策 / 动作 实现要点
治理策略 allow / deny / ask / sandbox 内置规则 + 用户规则;ask 弹到控制台或 IM
工具守卫 内容筛查 路径穿越、敏感文件、危险参数、Shell 规避;与策略合成单路径
沙箱 按次创建、用完销毁 macOS seatbelt;Linux bubblewrap 优先或 landlock;Windows AppContainer / Write Restricted Token
技能扫描器 安装前静态分析 Skill 是可执行文件夹,不过扫描不能进运行时
加密密钥库 静态加密 提供商密钥和连接器凭据;驱动按次取凭据再过策略门

2.1 明确还没闭合的边界:


7. 多智能体

同一安装内,一个 QwenPaw 智能体可以给另一个发消息,或新拉起一个智能体。子智能体继承当前会话审批级别;后台 fork 要等权威终态,失败时不丢 worktree 变更。

对外走 ACP(Agent Client Protocol):QwenPaw 可以拉起外部智能体进程,把它干的活当工具结果流式发回,权限请求交回宿主审批。2.1 可以创建由 Codex / Qoder 驱动的 Agent;ACP 客户端可传临时模型、项目目录、MCP,且不把运行时凭据写盘。


8. 从 2.0 内核到 2.1 外壳

版本 日期 定位 架构含义
2.0.0 2026-07-10 Agent OS 内核 Workspace 三支柱、Driver、Loop Engineering、Scroll、ReMe v0.4、TUI
2.0.1 2026-07-24 PawApp 平台 小程序、用户可编辑 Agent Mode、Oh-My-Paw 插件、记忆增强
2.1.0 2026-08-13 OS Shell + 应用 窗口化桌面、统一 Files、Creator、Codex/Qoder、Browser/Computer-use、检查点

2.1 真正改架构的部分:

仍挂在 2.0 骨架上: 8 阶段 Runtime、每请求组装、治理四态、原生沙箱、ReMe Markdown 记忆都没有被替换。Creator 是多智能体视频生产应用,不是新内核——脚本、素材、渲染各用独立 Agent,靠既有协作与任务恢复。长任务续接、后台工具、工作流分支并行,是 Loop / Executor 能力的加厚。


9. 设计判断

选对了。 工作区即文件系统,备份、版本控制和人工编辑都成立。请求级无状态组装让策略和模式可热切换。频道与驱动分离,避免 IM 协议污染工具层。

成本。 常驻多工作区服务比无状态 API 调用重:Hook 拓扑、插件注册、沙箱探测、SSE 心跳都要运维。本地优先换来的是你自己扛隔离和升级。

还敞着。 Browser-use 与 Computer-use 的策略强制落后于文件 / Shell 工具。外部 Harness 的安全模型取决于宿主审批是否被正确交回。多模态上下文计量仍在修。

若只记三句:

  1. 它是 Agent OS,不是聊天套壳。
  2. 隔离单位是工作区,执行骨架是 8 阶段 Runtime,安全脊梁是治理四态加原生沙箱。
  3. 2.1 是外壳和应用层升级,内核仍是 2.0。

资料

Runtime 阶段名对照公开源码路径:src/qwenpaw/runtime/runtime.py、phases.py、builder.py、executor.py。