跳到主要内容

goose Perception

Perception 会定期截取桌面,把观察到的内容整理成一个相互链接的个人 wiki,涵盖项目、人物和日常活动。你可以通过本地网页界面浏览、搜索和编辑结果。

基于 goose over ACP 构建,使用 TypeScript 的 @aaif/goose-sdk 客户端。该应用不嵌入 Rust GDK 运行时。

源码

巧妙之处​

智能体不必等聊天消息才开始工作。这里由桌面观察驱动工作,wiki 则让每次运行之间保持连续。

Perception 每次都使用全新的智能体会话,而不是把截图堆进一个越来越长的对话里。快速模型负责描述截图,另一个模型负责把成批的观察整理进 wiki。长期记忆保存在用户可以检查和编辑的文件里,而不是一份聊天历史中。

这也把应用的调度和截取逻辑,与智能体的工具、提供商配置和执行分开了。

工作方式​

  1. 截取屏幕,并提取相关变化的描述。
  2. 把这些观察批量交给负责维护 wiki 的智能体。
  3. 在 wiki 目录中启动会话,并提供当前的 wiki 上下文。
  4. 更新页面和交叉引用。空闲时,用单独的检查提示词复查现有页面。

智能体客户端 创建会话时,以 wiki 作为工作目录:

const session = await client.newSession({
cwd: config.wikiDir,
mcpServers: [],
...(provider ? { _meta: { provider } } : {}),
});

同一个客户端把图像内容发给提取会话,把文字观察发给 wiki 会话。 主循环 负责批处理、变化检测和调度; 提示词 则规定智能体应当保留什么。

自己运行​

你需要 Node.js 20 或更高版本、带有受支持截图工具的 macOS 或 Linux,以及配置了支持视觉的模型的 goose。如果尚未安装 goose,这个包可以帮你安装。

npx goose_perception

这会开始截取桌面,并在 http://localhost:8112 打开 wiki 浏览器。停止进程即可停止截取。截取间隔、存储位置和连接选项请参阅 README。

桌面截取

截图可能包含隐私信息,并会发送给你配置的模型提供商。建议先从不含敏感内容的桌面开始,检查提供商设置,并复查 Perception 目录中保存的文件。