TokenFlux 文档

工具和记忆

agent 可以使用的 TokenFlux 工具:通知你、记住事实、委派工作、安排自己的计划任务

agent 在自己的沙箱里读写文件、运行命令。TokenFlux 还为每个 agent 提供本页介绍的工具。你不需要自己调用这些工具,用普通文字告诉 agent 即可。

通知

notify 把一条简短的纯文字消息发送到你已绑定的聊天,最多 3,500 个字符。agent 用它汇报长任务的进度,或在任务需要你处理时提醒你。每个任务最多发送 10 条。

  • 在聊天的会话里,消息发送到这个会话对应的聊天。
  • 在网页版的会话里,消息发送到这个 agent 已绑定的所有聊天。
  • 在自动化或子会话结果的运行里,消息只发送到这次运行对应的聊天。

最终回答不需要 notify,渠道会自动发送。

记忆

记忆包含 Agent Soul、记忆仓库和会话历史。

记忆仓库是 agent 存储卷上 /data/memory 里的一个 git 仓库,由一组文件组成。MEMORY.md 是它的索引。其他笔记放在它旁边,[[path]] 把一个文件链接到另一个文件,每条记录都写明它来自哪段对话。记忆仓库属于一个 agent,由这个 agent 开启记忆的会话共用。群聊会话不加载记忆仓库,其他 agent 也不能读取。

只有后台记忆审阅写入记忆仓库。后台记忆审阅叫作 dreaming。系统提示词要求会话只读取记忆仓库。文件系统不阻止写入,后台审阅在每批开始前丢弃未提交的修改。要保留一个事实,请在对话里说出来,例如“我每周一审查 pull request。”下一次后台审阅会保存这个事实,通常在一小时内完成。agent 不会说事实已经保存,因为保存发生在之后的后台审阅里。后台审阅只读对话文字,不读工具输出。所以 agent 解决问题后,会在回复里写出经验。

开启记忆的会话在每次运行开始时,把 MEMORY.md 加载到系统提示词里。系统提示词最多包含这个文件的 2,000 个字符。文件更长时会被截断,并附上一条提示。提示写明文件的完整长度,并要求 agent 读取文件。修改从下一次运行开始生效。对于其他事实、决定或偏好,agent 用 rg 搜索 /data/memory 并读取文件。搜索按文字匹配,不按语义搜索。

要读取开启记忆的会话里的早期对话,agent 先用 context_sessions 列出会话,再用 context_read 读取一段消息。每条记录的来源就是这样一段消息。长会话文本需要继续翻页。工具日志默认不包含在内。已删除或其他 agent 的会话不可读取。指向已退役的 pi 会话文件的来源不再可用。

群聊不使用记忆。由群聊开始的会话,或者收到过群聊消息的会话,都不能使用记忆。它们的子会话也不能使用记忆。向群聊报告的自动化同样不能使用记忆。之后从网页发送消息,也不会重新开启记忆。开启记忆的会话不会搜索关闭记忆的会话历史。v1.7.2 之前创建的会话和导入的会话,在下次运行时判断记忆状态。如果这类会话的上次运行可能回复群聊,它们就关闭记忆。如果旧群聊会话上次从网页版继续对话,会话可能保留开启状态,直到再次收到群聊消息。如果群聊需要完全隔离,请为群聊单独创建一个 agent。原因是同一个 agent 的工作区文件仍然共用,关闭记忆的会话也能主动读取 /data/memory 里的文件。

dreaming 每小时运行一次,具体分钟由 agent ID 算出。它检查开启记忆的会话中已完成的对话范围。后台审阅保存有用事实、合并重复记录、删除这些对话表明已经过时的记录,并更新 MEMORY.md。后台审阅运行时没有网络访问。如果没有待审阅内容,agent 不调用模型。否则,后台审阅使用 agent 的模型,并消耗你的账户余额。每次运行最多处理 10 批内容,超过 15 分钟就停止。剩余内容等到之后的运行处理。后台审阅不保证保存每条有用事实。

每个有修改的审阅批次对应一个 git 提交。你可以问 agent 后台审阅改了什么。agent 在 /data/memory 里用 git log 和 git show 读取历史。没有撤销工具。如果一条记忆有误,请在对话里纠正它,之后的后台审阅会更新这条记录。

引入记忆仓库时,之前保存的记忆已被删除。之前的后台审阅已经读过的对话不会再读一次。

Agent Soul

Agent Soul 说明 agent 的角色、性格、语气和长期工作规则。记忆仓库保留事实和经验。只有 agent 能修改 Soul。Agent 设置 中没有 Soul 编辑器。要修改 Soul,请直接告诉 agent 要改什么。在你已有的授权范围内,agent 用常规的编辑和写入工具修改一个私有草稿文件。只有这两个工具返回的发布回执才表示修改已保存。修改在下一次运行生效。当前运行继续使用开始时加载的 Soul。

Soul 保存在 agent 的存储卷上。每个已发布版本都是一个带编号的单独文件,发布后不再改变。编号最大的文件是当前版本。同一个 agent 的所有会话共用这份 Soul。基于旧版本的修改会被拒绝,这时 agent 的草稿会显示当前 Soul。以前在 Agent 设置 中保存的 Soul 不会迁移,也不再加载。如果仍需要这段内容,请把原文提供给 agent,再让 agent 保存。系统提示词以固定的记忆指南开头,随后是 ### Agent Soul 和本轮加载的 Soul 正文。会话使用记忆时,最后是 ### Memory index 和 MEMORY.md。

会话详情

session_get 返回当前会话的详情:会话 ID、标题和时间,agent,当前任务使用的模型和思考等级,记忆是否开启,以及启动这个任务的来源。会话单独选择的模型显示为 "source": "session"。agent 的默认模型显示为 "source": "agent"。这个工具只读取当前会话。

子会话

session_spawn 让 agent 把一个独立的任务委派给新的子会话。子会话在自己的容器里并行运行,并和 agent 共用工作区文件。子会话只能看到分配给它的任务,看不到父会话的对话内容。

  • 父会话立即继续,不会等待。
  • 子会话完成后,它的回答(最多 16,000 个字符)会在父会话当前任务结束后,作为一条新消息进入父会话。父会话随后回应这条消息。
  • 一个任务最多启动 3 个子会话。子会话不能再启动自己的子会话。
  • 停止父会话不会停止子会话。删除父会话会删除它的子会话。
  • 从聊天里启动的子会话,会把结果发送到这个聊天。

子会话显示在 会话 列表里,并带有 子会话 标签。

自动化

通过 automation_* 工具,agent 可以列出、创建、修改、删除和运行自己的自动化,也可以查看最近的运行记录。例如你可以说:“每个工作日 9:00,检查我打开的 pull request,并给我发一份总结。”

任何消息都可以让 agent 创建自动化,包括 agent 读到的网页或文件里的文字。请不定期查看 自动化 页面,删除你不需要的自动化。

应用

agent 可以使用 Notion、Linear、Sentry 或 GitHub 等应用。先在账号的 应用 页面连接应用一次。连接时可以登录应用,也可以粘贴 API 密钥。连接后,你的所有 agent 都可以使用这个连接。你也可以对 agent 说“连接 Linear”。在网页版中,对话里会出现连接卡片。你在卡片上登录或填写 API 密钥。连接完成后,agent 会继续之前的任务。在私聊中,agent 会发给你这个应用页面的链接。不要把 API 密钥发到对话里。

agent 通过 app_* 工具查找和调用应用工具。例如你可以说:“列出我在 Linear 上打开的 issue。”agent 可以执行这个连接允许的所有操作,包括修改。如果只需要读取,请只给密钥或登录授权读取权限。工具输出会进入对话。私聊和自动化任务也可以使用应用。群聊中不能使用应用,因为群里的任何人都可以向 agent 发消息。

如果要使用列表中没有的远程 MCP 服务器,可以在 应用 页面使用 在 MCP Registry 中查找 搜索官方 MCP Registry,并添加搜索结果。TokenFlux 会从 Registry 读取服务器的 URL 和密钥字段。Registry 是公开目录,TokenFlux 不审核其中的服务器。也可以使用 添加服务器,并填写服务器的 https URL。不要在 URL 中放密钥。添加后,像其他应用一样连接:可以填写 API 密钥;服务器支持时可以登录;服务器不要求凭据时可以直接连接。服务器必须在公网上。TokenFlux 无法验证添加的服务器的密钥,所以页面会显示“密钥未经验证”。移除服务器前,请先移除它的连接。

如果应用要求重新连接,请点击 重新连接。在 应用 页面移除连接后,所有 agent 都不能再使用这个连接。如果服务器没有启用应用,页面会显示提示。

本页内容