f7a720204a
- 移除 GovAI, nomifun-tauri, 算力盒子 的 submodule 引用 - 添加所有子项目的完整源代码 - 保留原始 .git 为 .git.bak 备份
3.4 KiB
3.4 KiB
助手
助手是一套可复用的 agent persona:展示信息、默认 agent 后端、可选模型偏好、 system prompt 和技能选择。
当前入口是 /assistants。旧 /settings/assistants 会重定向到
/assistants?tab=assistants。
来源
助手由三类来源合并:
| 来源 | 来自哪里 | 是否可编辑 |
|---|---|---|
| Builtin | 嵌入在 crates/backend/nomifun-app/assets/builtin-assistants/ 的 manifest,由 BuiltinAssistantRegistry 加载。 |
内容只读;启用、排序、最近使用和 builtin preset_agent_type 覆盖单独存储。 |
| Custom | 用户创建的 assistants 表记录和数据目录中的文件。 |
可完整编辑和删除。 |
| Extension | 已安装扩展通过 resolvers::assistant 提供。 |
此页只读;生命周期由扩展管理。 |
合并后的列表由 GET /api/assistants 返回。
助手包含什么
关键字段:
id、source、name、description、avatarpreset_agent_type:默认后端,例如nomi、claude、codex、geminimodels:可选模型偏好prompts/prompts_i18n:助手指令enabled_skills:启动会话时附加的技能enabled、sort_order、last_used_at- picker/filter 使用的标签元数据
自定义助手文件位于数据目录:
assistant-rules/assistant-skills/assistant-avatars/
删除自定义助手会清理关联文件。
编辑规则
| 字段 / 操作 | Builtin | Extension | Custom |
|---|---|---|---|
| 启用 / 禁用 | yes | yes | yes |
| 排序 / 最近使用 | yes | yes | yes |
| 修改默认 agent 后端 | 仅 builtin override | no | yes |
| 编辑名称 / 描述 / 头像 | no | no | yes |
| 编辑 prompt / skill 文本 | no | no | yes |
| 删除 | no | no | yes |
Builtin 的可变状态写入 assistant_overrides。Extension 助手由扩展拥有,因此在
这里只读。
技能
技能 tab 也在 /assistants 下:
/assistants?tab=assistants/assistants?tab=skills
助手的 enabled_skills 会在 session start 时与自动注入的 builtin 技能合并。
后端会按不同 agent 后端的规则 materialize 技能;正常使用时不需要手动复制技能目录。
MCP server 已独立到 /mcp。技能和 MCP 都能扩展 agent 能力,但当前是分开管理。
API
| 操作 | Endpoint |
|---|---|
| 列表 / 创建 | GET, POST /api/assistants |
| 更新 / 删除 | PUT, DELETE /api/assistants/{id} |
| 状态覆盖 | PATCH /api/assistants/{id}/state |
| 头像 | GET /api/assistants/{id}/avatar |
| 批量导入 | POST /api/assistants/import |
| 标签 | GET, POST /api/assistant-tags; PUT, DELETE /api/assistant-tags/{key} |
助手规则和助手技能文件通过 /api/skills/assistant-* 路由读写,以便正确分发到
builtin、extension 或 user source。
注意
- 创建助手但未指定
preset_agent_type时,需要至少有一个已配置 provider;能推断时默认使用nomi。 - CLI 型 agent 仍需要宿主机安装对应 CLI。选择
claude、codex、gemini不会自动安装这些工具。 - 旧 JSON 导入是 insert-only 且幂等的:已有 id 会跳过,错误按行报告。

