microsoft/TypeAgent
Sample code that explores an architecture for using language models to build a personal agent that can work with application agents.
TypeAgent – 个人AI助手的示例
是什么
- 由微软维护的开源示例,展示如何构建一个可通过自然语言与之对话的单一个人助手。
- 代码演示了如何使用结构化提示方法,将大语言模型(LLMs)与传统软件组件(动作、记忆、规划)相结合。
核心理念
| 原则 | 应用方式 |
|---|---|
| 将模型提炼为逻辑结构 | 动作以类型化模式(通过 TypeChat)表达;记忆以本体形式存储;规划采用“思维树”搜索,由LLM、质量模型和人类协作完成。 |
| 通过结构控制信息密度 | 动作契约是离散且高度描述的;记忆保持在紧密的语义结构中,适合LLM的注意力窗口;每个搜索节点聚焦于一个子问题。 |
| 通过结构实现协作 | 人类澄清模糊请求;简单解析器提取逻辑形式;多个模型(LLM、优势/质量模型)协作扩展最佳优先搜索树。 |
关键组件
- TypeAgent Shell – 基于 Electron 的 UI,允许用户通过单一界面与多个注册的代理进行对话(支持语音)。
- Dispatcher – 使用结构化提示,将用户的自然语言请求路由到最匹配意图的类型化契约代理。
- KnowPro – 实现了结构化 RAG 记忆层:对话历史被索引为逻辑实体,支持精确查询,如“我们讨论过哪些书?”
- Cache – 使用 LLM 驱动的结构化提示对动作翻译进行缓存,减少重复调用模型,降低延迟。
- Agent SDK – 定义了代理必须实现的 TypeScript 接口,以接入调度器和外壳。
包含的示例代理(均基于相同架构)
- 音乐播放器、聊天、网页浏览器、VS Code、列表管理器、日历、邮件、桌面自动化、图像编辑器、Markdown 编辑器、照片蒙太奇等。
如何尝试
- 按平台特定的设置文档(Windows、WSL2、Linux、macOS)安装 Node、Azure OpenAI 密钥等。
- 运行 TypeAgent Shell(
ts/packages/shell)—— 你将获得一个支持语音的对话窗口。 - 与内置代理互动,或通过实现 SDK 并将代理注册到调度器来添加自定义代理(参见
Echo教程)。
设计亮点
- 结构化 RAG 用基于模式的索引取代传统的仅向量检索,显著提升对话事实的召回率。
- 动作-记忆耦合 – 执行动作(例如“将一场匹克球比赛添加到我的日历”)会自动创建可被后续动作引用的记忆条目。
- AMP 架构(动作-记忆-规划)将三者流程整合,实现无缝信息交换。
当前状态与限制
- 处于早期阶段的示例代码,非生产就绪框架。
- 仅在开发机上使用 Azure OpenAI 服务进行测试;仅支持英文评估。
- 依赖精心设计的 JSON 模式;若模式未能捕捉用户意图,LLM 可能生成无效响应。
- 无内置遥测功能;开发者需自行提供 API 密钥。
谁可能感兴趣
- 探索如何结构化 LLM 驱动代理的研究人员或工程师。
- 希望获得个人助手、动作调度器或记忆增强聊天机器人参考实现的开发者。
- 对“结构化提示”模式感兴趣,以降低 LLM 成本并提高可靠性的团队。
微软计划的下一步
- 发布可重用的内存和调度层库。
- 提供可安装包和新代理的动态发现功能。
以上所有信息均直接来自仓库的 README;未推断任何额外功能。
相关
- 项目
- 项目
- 项目
- Dispatch
- 项目