MagicFrog 把经常被混为一谈的两件事分开:任务(task)——要做的工作本身;agent——做这项工作的具名执行者。历史与状态由任务承载;身份、角色、人格(persona)与记忆由 agent 承载。两个界面各自独立管理,一个 agent 可以同时参与任意多个任务。
任务
任务是你要做的工作本身:
- 身份:任务 ID、标题与所属项目
- 状态:
running、idle或archived - 上一轮已完成 run 的结果
任务界面与 agent 管理相互分离。列出、打开、配置任务从不触碰 agent 定义。
Agent
agent 是一份具名档案(profile):一个跨任务、跨会话存续的持久身份,不依附于任何一段具体对话。档案就是本地 Markdown 文档——MagicFrog 数据目录下 agent-profiles/ 里每个 agent 一个文件——所以一个文本编辑器就足以作为档案客户端:
---
name: "Release engineer"
role: "Owns release preparation and changelog accuracy"
status: active
---
You prepare releases. Check the changelog against merged changes before
proposing a version bump.
id以agp_开头,跨机器稳定。name与role是该 agent 参与之处的身份标识。status为active或archived——归档让 agent 退役,但不删除其历史。- 文档正文就是人格(persona):agent 带进每个任务的工作指令。
summary是该 agent 滚动更新的工作摘要;随工作推进而更新,并可跨任务复用。- 每份档案都带
revision;携带过期 revision 的更新会失败,而不是覆盖别处的修改。
同一份档案在本地和云端都能用。

图为真实的 Settings → Agents 页面:组织 agent 由组织分发、只读;个人 agent 本地管理。图如实呈现空态,未做任何摆拍。
内置 agent:Pi
Pi 是内置的默认 agent,全新安装无需再装一个运行时就能干活。它和其他 agent 走同一条规则:目标指名、授权、能力校验与审计全部一致。第三方 agent 走同一个注册入口;换 agent 不改变有哪些工具,也不改变工具如何被授权。
加入任务
关联在两个方向上都是显式的。把 agent 拉进任务会创建一条花名册成员;没有任何东西隐式加入,移除 agent 同样是显式操作。
- 角色:每个成员都带一个角色。
owner——同一时刻至多一个——是任务所有者;其余参与者角色自由命名,并显示在任务的参与者列表中,每个参与者都能看到谁握着什么角色。 - 加入上下文:被拉进运行中任务的 agent 会收到任务上下文摘要——目标、此前活动的摘要与最近的历史——连同参与者名单一起进入正在进行的对话。
- 并发:多个参与者可以在同一个运行中的任务里工作;拉入另一个 agent 不会暂停或重启对话。
- 多重性:一个 agent 可以同时出现在任意多个任务花名册上。任务之间不存在独占锁。
- 交接:责任只通过一次显式移交从当前 owner 转给一名既有参与者,每次交接都记录在任务的移交日志里。所有权从不漂移。
- 持久化:参与者列表按任务持久保存;出错时显式报错,绝不悄悄清空。
@ 人类
在群聊任务中,agent 可以用显式 @ 引用指向一名人类参与者。这条 mention 会进入全局事件收件箱成为一条待处理事件:agent 通过 @你发问,你在卡片上回应,回应写回任务的会话。
任务内共享
任务拥有的一切都住在这份任务自己的命名空间里——记忆、文件、产物与触发器都挂在任务 ID 之下——参与者能在任务内看到彼此的工作,却不会与另一个任务相撞。记忆遵循同一约定:带任务 ID 前缀的任务维度笔记属于该任务,对该任务的参与者可见。
任务结束时,它名下的资源按保留策略处置:默认保留(便于追溯);显式清除时若有资源清不掉会显式报错——不会有东西被静默保留,也不会有东西被假装删除。
Agent 的记忆与漫游
每个具名 agent 都有自己的记忆:记忆的 agent 维度,按 agent ID 隔离,跨会话持久保存偏好与角色上下文。agent 档案与记忆摘要随你的账号在机器间同步,所以在登录你账号的每台机器上,一个具名 agent 都是同一个 agent。