goose Perception
Perception 会定期截取桌面,把观察到的内容整理成一个相互链接的个人 wiki,涵盖项目、人物和日常活动。你可以通过本地网页界面浏览、搜索和编辑结果。
基于 goose over ACP 构建,使用 TypeScript 的 @aaif/goose-sdk 客户端。该应用不嵌入 Rust GDK 运行时。
巧妙之处
智能体不必等聊天消息才开始工作。这里由桌面观察驱动工作,wiki 则让每次运行之间保持连续。
Perception 每次都使用全新的智能体会话,而不是把截图堆进一个越来越长的对话里。快速模型负责描述截图,另一个模型负责把成批的观察整理进 wiki。长期记忆保存在用户可以检查和编辑的文件里,而不是一份聊天历史中。
这也把应用的调度和截取逻辑,与智能体的工具、提供商配置和执行分开了。
工作方式
- 截取屏幕,并提取相关变化的描述。
- 把这些观察批量交给负责维护 wiki 的智能体。
- 在 wiki 目录中启动会话,并提供当前的 wiki 上下文。
- 更新页面和交叉引用。空闲时,用单独的检查提示词复查现有页面。
智能体客户端 创建会话时,以 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 目录中保存的文件。