用户指南 · 06

设置中心

点击侧栏用户行右侧的 ⚙️ 齿轮按钮进入设置中心。设置中心侧栏显示设置导航菜单,点击左上角 ← 返回按钮可回到对话页面。

6.1 操作规则

路径:设置 → Prompt

包含三个 Tab(部分 Tab 默认隐藏,需在 通用 → 高级功能 开启):

6.1.1 Profile(用户画像)

  • 配置 Agent 对你的认知(投资偏好、专业背景、个性化备注等)
  • 版本管理:保存任意版本,支持 Diff 对比和一键回滚
  • 用户画像通过 {user_profile_context} 占位符注入到 System Prompt

6.1.2 操作规则(System Prompt + 能力提示词)

仅在 通用 → 高级功能 → 操作规则 开启时显示。

  • 编辑 Prompt:在文本编辑器中修改当前 System Prompt
  • 保存版本:可为每次修改添加标签和备注
  • 版本历史:查看所有历史版本列表
  • Diff 对比:查看两个版本之间的差异
  • 回滚:一键回滚到任意历史版本
  • 重置:恢复为系统默认 Prompt
  • 能力提示词:折叠面板,展开可逐条编辑/恢复默认(如 scheduler 必须用什么时区格式、媒体生成怎么用 <<FILE:>> 标签)

6.1.3 Memory & Soul(记忆与灵魂)

仅在 通用 → 高级功能 → Memory & Soul 开启时显示。

  • Memory Subagent 写入:Switch
    • 关闭:Memory Subagent 仅能读对话和 inbox
    • 开启:Memory Subagent 可在 filesystem/soul/ 创建/编辑/删除笔记(Agent 主动总结记忆到长期人格中)
    • 下方附带可编辑的能力提示词
  • Soul 文件系统:Switch
    • 关闭:主 Agent 不可见 /soul/ 目录
    • 开启:主 Agent 在文件面板和工具中可直接读写 /soul/
    • 下方附带可编辑的能力提示词
  • 包含消费者对话:Switch — Memory Subagent 是否能读取 Service Consumer 对话历史
  • 最近消息条数:默认 5(注入到调度任务和 inbox agent 的 prompt 前缀)

Soul 系统详细说明见 §9。

6.2 Subagent 管理

路径:设置 → Subagent 管理

配置主 Agent 可调用的子代理(Subagent),实现复杂任务的分工协作。

功能

  • 创建子代理:设置名称、描述、使用的模型、可用工具
  • 编辑配置:修改已有子代理的配置
  • 删除子代理:移除不需要的子代理
  • 工具配置:从可用工具池中勾选(包括联网/媒体/调度/记忆/Soul 等)
  • 模型选择:为子代理指定独立的模型(可与主 Agent 不同)

内置 Memory Subagent

  • 默认提供,不可删除(可禁用)
  • 默认工具:读 Admin 对话 / 读 Service Consumer 对话 / 读 inbox
  • 启用 Memory Subagent 写入后追加 soul 写工具(list/read/write/delete)

Subagent 可用工具池

类别工具
通用run_script / web_search / web_fetch / generate_image / generate_speech / generate_video / schedule_task / manage_scheduled_tasks / publish_service_task / send_message
记忆list_conversations / read_conversation / list_service_conversations / read_service_conversation / read_inbox / soul_list / soul_read / soul_write / soul_delete

6.3 Python 环境(per-user venv)

路径:设置 → Python 环境

每个 Admin 拥有独立的 Python 虚拟环境(users/{你的用户名}/venv/),用于脚本执行。

功能

  • 初始化环境:首次使用需点击 初始化 创建 venv(继承系统预装包:numpy/pandas/matplotlib 等)
  • 安装包:输入包名(如 requestsscikit-learn)点击安装
  • 卸载包:在已安装列表中点击删除
  • 查看已安装包:列表展示版本号

安全限制

  • 包名不允许包含 `;|&$`` 等注入字符
  • pip 操作仅在你的 venv 内执行,不影响其他用户
  • 持久化:安装的包记录到 users/{你的用户名}/venv/requirements.txt,重启/Docker 重建时自动还原

6.4 收件箱

路径:设置 → 收件箱(侧栏菜单显示未读消息数量徽章)

接收来自 Service Agent 的消息:当 Service Consumer 在对话中触发了 contact_admin 工具,或某些 Service 任务需要管理员决策时,消息会出现在这里。

功能

  • 消息列表:显示未读 / 已读 / 已处理的消息
  • 未读计数:侧栏菜单显示未读数量徽章
  • 标记状态:将消息标记为已读 / 已处理 / 删除
  • 查看详情:查看消息的完整内容、发送来源(Service / 对话 ID)、紧急程度

自动转发到微信(智能 Inbox Agent)

如果你已通过 §6.8 微信接入 连接了 Admin 自己的微信,则每条收到的 inbox 消息都会触发一个 Inbox Agent

  • 自动评估消息的紧急程度和上下文
  • 决定是否转发到你的微信(避免被无关消息打扰)
  • 发送时附带摘要而非整段原文

消息来源标注

来源标记
Service Consumer 主动呼叫contact_admin 工具
Service 定时任务[系统指令 - 来自管理员] 触发的 contact_admin
Inbox Agent 自评估[系统指令 - Service 收件箱通知]

6.5 通用

路径:设置 → 通用

6.5.1 API Keys(强烈推荐)

每个 Admin 可配置自己的 API Key,优先级高于环境变量。AES-256-GCM 加密存储。

类型字段
Anthropicanthropic_api_key + anthropic_base_url
OpenAIopenai_api_key + openai_base_url
Tavilytavily_api_key
多媒体(按需)image_* / tts_* / video_* / s2s_* / stt_* 的 key + base_url

操作

  • 编辑:点击折叠面板展开,输入 Key
  • 测试连接:验证连通性
  • 保存:自动加密存储 + 清除 Agent 缓存(下次请求生效)

如果你既未配置 per-admin Key 也未在 .env 中配置环境变量,登录后会弹出引导 Modal 提示设置。

6.5.2 时区设置

  • 设置默认时区(影响:定时任务的 cron 表达式解释、聊天消息时间戳注入)
  • 时区改动会同步到 users/{uid}/preferences.json

6.5.3 主题选择

详细的主题切换 + 预览(dark / cyber-ocean / terminal)。

6.5.4 高级功能开关

控制 设置 → Prompt 页内 Advanced Tab 的可见性:

  • 操作规则 Switch:是否显示 System Prompt 编辑器 + 能力提示词
  • Memory & Soul Switch:是否显示 Soul 配置页

默认关闭。新手不需要看到,避免误操作。

6.5.5 批量运行(内嵌 BatchRunner)

通过 Excel 文件批量执行 Agent 任务,适合数据处理、批量分析等场景。

使用流程

  1. 上传 Excel:选择包含任务数据的 Excel 文件(.xlsx
  2. 配置运行
    • 选择输入列(作为 Agent 的消息)
    • 选择使用的模型
    • 配置能力开关
    • 设置自定义 Prompt(可选)
  3. 开始运行:批量任务开始执行
  4. 查看进度:实时显示当前进度(已完成/总数)
  5. 下载结果:完成后下载包含 AI 回复的结果 Excel

注意事项

  • 每行数据独立执行,互不影响
  • 支持中途取消
  • 结果文件包含原始数据 + AI 回复列

旧链接 /settings/batch 会自动重定向到 /settings/general

6.6 Service 管理

路径:设置 → Service 管理

将配置好的 Agent 发布为 Service,供外部消费者(Consumer)通过 API 或微信扫码使用。

6.6.1 界面布局

  • 左侧 (30%):Service 列表卡片
    • 绿色圆点 = 已发布
    • 灰色圆点 = 草稿
    • 选中时左侧显示品牌色高亮条
  • 右侧 (70%):选中 Service 的详情,分为 4 个标签页

6.6.2 Basic Info(基础信息)

字段说明
名称Service 显示名称
描述Service 说明文本(简介)
模型选择 Service 使用的 AI 模型
System Prompt可选:使用某个保存的 Prompt 版本,或自定义
User Profile可选:使用某个用户画像版本(注入到 prompt)
能力勾选 Service 开放的能力:web / scheduler / image / speech / video / humanchat
可访问的文档/脚本可视化勾选树(来自 /docs//scripts/),文件夹勾选 = 整个目录
欢迎语聊天页首屏的渐变大字(最多 300 字)
快速问题首屏 chips 横排(每条最多 80 字,最多 6 条)
发布状态Switch 切换 发布/草稿

6.6.3 API Keys

每个 Service 可创建多把 sk-svc-... 格式的 API Key 供 Consumer 使用。

操作说明
生成 Key创建新的 API Key(只在创建那一刻能看到完整 Key,关闭后只能看到哈希)
附 Key 链接创建后 Modal 额外显示 /s/{service_id}?key=sk-svc-xxx 一键访问链接
复制 Key一键复制 Key 到剪贴板
删除 Key撤销某个 Key

⚠️ 附 Key 链接等同分享 Key。链接虽然在用户访问时立即从 URL 中清除并写入 localStorage,但 referer/网关访问日志中可能留痕。

6.6.4 WeChat Channel(微信渠道)

详见 §7。

字段说明
启用/禁用Switch 开关微信扫码渠道
过期时间设置渠道有效期
最大会话数限制同时连接的微信用户数
QR 链接获取微信扫码中间页链接(/wc/{service_id}
活跃会话查看当前连接的微信用户列表
断开会话主动断开某个微信用户
查看对话进入某个微信用户的对话历史

6.6.5 Test(内联测试)

无需离开管理页面,直接与 Service 进行测试对话。自动创建临时 API Key 和测试对话。

⚠️ 已知问题:每次新测试会创建新的 API Key 但不会自动清理(孤立 Key),需手动在 API Keys Tab 删除。

6.7 定时任务

路径:设置 → 定时任务

管理定时执行的自动化任务,分为 管理员任务服务任务 两个 Tab。

6.7.1 管理员任务

任务类型

  • Script:定时执行 scripts/ 目录下的 Python 脚本
  • Agent:定时执行 Agent 任务(发送 Prompt + 可选文档上下文)

调度类型

  • once:一次性执行(指定 ISO 时间,建议带时区后缀,如 2026-12-31T09:00:00+08:00
  • cron:Cron 表达式定时(如 0 9 * * * 每天 9 点)
  • interval:间隔执行(秒数)

沙箱权限(仅 Script 任务):

  • 可配置脚本读/写目录(默认 docs/scripts/generated/tasks
  • 路径相对用户文件系统根目录

reply_to 选项

  • 不推送:仅记录运行结果
  • 推送到我的微信:通过已绑定的 Admin WeChat 投递(需先在 §6.8 接入)

6.7.2 服务任务

由 Admin 给某个 Service 派发,或由 Consumer 在对话中通过 schedule_task 工具创建。

  • 仅支持 Agent 类型(无脚本)
  • 使用 Consumer Agent 执行(按 Service 配置的能力 + 文档限制)
  • reply_to 路由(决定结果推送到哪里):
Channel目标适用场景
wechat推送到微信用户(来源 session)Service 微信渠道用户
inbox写入 Admin 收件箱(自动评估转发)需管理员审阅
admin_chat写入 Admin 普通聊天对话Service 主动汇报
  • Service 任务列表显示 service_id、📬 推送标记、reply_to 信息
  • Service 的 manage_scheduled_tasks 仅能操作当前 conversation 的任务(权限隔离)

6.7.3 运行记录

每次执行记录详细的步骤日志:

步骤含义
start开始执行
docs_loaded文档加载完成(仅 Agent)
loopAgent 循环迭代
tool_call / tool_result工具调用与结果
ai_messageAI 消息
auto_approve自动审批(HITL)
wechat_warning / wechat_error微信投递警告/错误
finish完成
error错误
reply兜底推送

可以查看每次运行的耗时、错误信息、完整步骤。

6.7.4 立即执行

每个任务列表行右侧的 运行 按钮可立即触发一次执行(不影响下次定时)。

6.8 微信接入(管理员自接入)

路径:设置 → 微信接入

管理员自己的主 Agent 通过微信 iLink 协议接入,实现在微信中直接与你的 JellyfishBot 对话。

这与 §7 Service 渠道 是两套完全独立的栈:Admin 接入用的是你的主 Agent(完整权限),Service 渠道服务于 Consumer(受限权限)。

6.8.1 接入流程

  1. 进入 设置 → 微信接入,点击 生成二维码
  2. 用微信扫描 QR 码(即 iLink Bot 协议的扫码登录)。
  3. 扫码成功后:
    • 状态自动变为 已连接
    • 你在微信中给 JellyfishBot 发消息,机器人会回复
  4. 首次扫码后,你的微信账号绑定关系会被持久化到 users/{你的用户名}/admin_wechat_session.json,Docker / 服务重启后自动恢复连接。
  5. 主动断开:点击 断开连接 按钮,或微信端取消授权。

6.8.2 多模态支持

  • 接收图片:CDN 下载 → AES 解密 → 自动作为多模态消息发给 GPT-4o / Claude(Vision 能力)
  • 接收语音:CDN 下载 → AES 解密 → SILK→WAV → Whisper 转文字
  • 发送图片/视频:自动通过 <<FILE:>> 标签触发(图片走 iLink CDN 上传,视频/MP3 走文件附件)
  • 发送 TTS 语音:以文件附件形式发送(语音条暂不可用)

6.8.3 管理界面

  • 状态卡片:显示当前连接状态、绑定的微信用户标识
  • 消息列表:查看微信对话记录(可在 /api/admin/wechat/messages 接口拉取)
  • 断开按钮:主动断开当前连接

6.8.4 主要场景

场景操作
出门时用微信问 Agent 简单问题直接在微信发消息
接收定时任务推送在 §6.7 任务的 reply_to 选「推送到我的微信」
接收 Service 收件箱重要通知Inbox Agent 自动评估转发(见 §6.4)
让 Agent 主动汇报Admin 通过 publish_service_task 工具下发任务,Service 完成后推送回微信