f7a720204a
- 移除 GovAI, nomifun-tauri, 算力盒子 的 submodule 引用 - 添加所有子项目的完整源代码 - 保留原始 .git 为 .git.bak 备份
103 lines
3.7 KiB
Markdown
103 lines
3.7 KiB
Markdown
# Assistants
|
|
|
|
An **assistant** is a reusable persona package for an agent: display metadata,
|
|
default agent backend, optional model preferences, system prompt, and skill
|
|
selection.
|
|
|
|
Open the current page at **`/assistants`**. The legacy
|
|
`/settings/assistants` route redirects to `/assistants?tab=assistants`.
|
|
|
|

|
|
|
|
## Sources
|
|
|
|
Assistants are merged from three sources:
|
|
|
|
| Source | Where it comes from | Editable? |
|
|
| --- | --- | --- |
|
|
| Builtin | Embedded manifest under `crates/backend/nomifun-app/assets/builtin-assistants/`, loaded by `BuiltinAssistantRegistry`. | Content is read-only; enable/sort/last-used state and builtin `preset_agent_type` override are stored separately. |
|
|
| Custom | User-created rows in the `assistants` table plus files in the data dir. | Fully editable and deletable. |
|
|
| Extension | Installed extensions via `resolvers::assistant`. | Read-only from this page; manage the extension lifecycle instead. |
|
|
|
|
The merged list is returned by `GET /api/assistants`.
|
|
|
|
## What an Assistant Owns
|
|
|
|
Key fields:
|
|
|
|
- `id`, `source`, `name`, `description`, `avatar`
|
|
- `preset_agent_type`: default backend such as `nomi`, `claude`, `codex`, `gemini`
|
|
- `models`: optional preferred model ids
|
|
- `prompts` / `prompts_i18n`: assistant instructions
|
|
- `enabled_skills`: skills attached when starting a session
|
|
- `enabled`, `sort_order`, `last_used_at`
|
|
- tag metadata used by the picker and filters
|
|
|
|
Custom assistant rule files live under the data dir:
|
|
|
|
- `assistant-rules/`
|
|
- `assistant-skills/`
|
|
- `assistant-avatars/`
|
|
|
|
Deleting a custom assistant removes its associated files.
|
|
|
|
## Editing Rules
|
|
|
|
| Field / action | Builtin | Extension | Custom |
|
|
| --- | --- | --- | --- |
|
|
| Enable / disable | yes | yes | yes |
|
|
| Sort / last-used state | yes | yes | yes |
|
|
| Change default agent backend | builtin override only | no | yes |
|
|
| Edit name / description / avatar | no | no | yes |
|
|
| Edit prompt / skill text | no | no | yes |
|
|
| Delete | no | no | yes |
|
|
|
|
Builtin mutations are stored in `assistant_overrides`. Extension assistants are
|
|
owned by their extension and intentionally read-only here.
|
|
|
|

|
|
|
|
## Skills
|
|
|
|
The Skills tab is also under `/assistants`:
|
|
|
|
- `/assistants?tab=assistants`
|
|
- `/assistants?tab=skills`
|
|
|
|
Assistant `enabled_skills` are merged with auto-injected builtin skills when a
|
|
session starts. The materialization rules are implemented by the skill routes
|
|
and backend-specific agent adapters; users do not need to copy skill folders
|
|
manually for normal use.
|
|
|
|
For MCP servers, use `/mcp`; skills and MCP servers are related but managed on
|
|
separate pages now.
|
|
|
|
## API
|
|
|
|
| Operation | Endpoint |
|
|
| --- | --- |
|
|
| List / create | `GET`, `POST /api/assistants` |
|
|
| Update / delete | `PUT`, `DELETE /api/assistants/{id}` |
|
|
| State override | `PATCH /api/assistants/{id}/state` |
|
|
| Avatar | `GET /api/assistants/{id}/avatar` |
|
|
| Bulk import | `POST /api/assistants/import` |
|
|
| Tags | `GET`, `POST /api/assistant-tags`; `PUT`, `DELETE /api/assistant-tags/{key}` |
|
|
|
|
Rule and assistant-skill file reads/writes go through `/api/skills/assistant-*`
|
|
routes so builtin, extension, and user sources can be dispatched correctly.
|
|
|
|
## Notes
|
|
|
|
- Creating an assistant without `preset_agent_type` requires at least one
|
|
configured provider; the service defaults to `nomi` when possible.
|
|
- CLI-backed agents still require their CLI to be installed on the host. Picking
|
|
`claude`, `codex`, or `gemini` as an assistant backend does not install those
|
|
tools.
|
|
- Import from legacy JSON is insert-only and idempotent: existing ids are
|
|
skipped, and invalid rows are reported per assistant.
|
|
|
|
## Related
|
|
|
|
- [MCP & Skills](./mcp-and-skills.md)
|
|
- [Model Failover Queue](./model-routing.md)
|