智能体功能的配置、权限与受管服务示例见 docs/agent.md。
基于浏览器 ChatGPT 会话的 NoneBot2 插件。聊天和管理命令使用 Alconna 与 UniMessage,支持接入不同适配器,并提供逻辑会话、人设、授权、富文本和受控智能体能力。
| 能力 | 说明 |
|---|---|
| 跨平台聊天 | 使用 NoneBot 统一事件和 UniMessage,不依赖 OneBot 专属消息类型。 |
| 逻辑会话 | 群聊/频道共享会话,私聊独立;支持初始化、重置、回退、历史与切换。 |
| 人设与上下文 | 支持公开/私有人设、自动初始化、会话内人设强化与上下文摘要迁移。 |
| 富文本输出 | 根据内容和适配器能力输出文本或 Markdown 图片,支持自定义聊天图片模板。 |
| 授权管理 | 支持会话/个人白名单、一次性 CDK、黑名单、Plus 权限、账户状态与本机控制台。 |
需要能正常访问 ChatGPT 的网络环境。首次登录、Cloudflare 验证、邮箱验证码和浏览器启动故障建议在带桌面的环境中排查;多账号常驻会增加内存占用。
使用 nb-cli 安装
在 nonebot2 项目的根目录下打开命令行, 输入以下指令即可安装nb plugin install nonebot-plugin-gpt
使用包管理器安装
在 NoneBot2 项目根目录打开命令行,根据使用的包管理器执行其一:pip
pip install nonebot-plugin-gpt
pdm
pdm add nonebot-plugin-gpt
uv
uv add nonebot-plugin-gpt
poetry
poetry add nonebot-plugin-gpt
plugins = ["nonebot_plugin_gpt"]
升级插件版本
pip install nonebot-plugin-gpt -U
pdm update nonebot-plugin-gpt
uv lock --upgrade-package nonebot-plugin-gpt
uv sync
在 NoneBot2 项目的 .env 文件中添加下列配置。列表和对象建议使用 JSON,并把整个值包在单引号中。
| 配置项 | 必填 | 默认值 | 类型 | 说明 |
|---|---|---|---|---|
| gpt_session | 是 | 无 | JSON List[Dict] | ChatGPT 账号列表;email、password 必填,mode 可为 openai(默认)、microsoft、google。请使用 JSON。 |
| gpt_proxy | 否 | 无 | str | 提供给核心浏览器运行时的代理地址,例如 http://127.0.0.1:7890;用于访问 ChatGPT,不影响 NoneBot 的其他网络请求。 |
| gpt_group_chat | 否 | true | bool | 群聊/频道向模型附加固定 [群聊发言者] 标签,包含稳定身份与可用显示名,帮助模型区分成员。 |
| gpt_group_context_enabled | 否 | false | bool | 是否在普通群聊/频道聊天被呼唤时,将机器人上次成功回复后的近期消息作为背景交给模型;不影响私聊、插件命令和智能体任务。 |
| gpt_group_context_max_messages | 否 | 20 | int | 每次最多附带的近期群聊消息数,取值范围为 1~100。 |
| gpt_group_context_max_age_seconds | 否 | 600 | int | 近期群聊消息的最大时间跨度,单位为秒;超过时间窗的消息不会附带。 |
| gpt_group_context_max_chars | 否 | 6000 | int | 近期群聊文字的总字符预算;达到上限时优先保留较新的内容。 |
| gpt_group_context_include_images | 否 | false | bool | 是否同时传递近期群聊消息中的图片;需要当前账户具备图片上传能力,并继续受全局附件限制。 |
| gpt_group_context_max_images | 否 | 4 | int | 每次最多附带的历史群聊图片数;当前触发消息的附件优先。 |
| gpt_chat_project | 否 | 空 | str | 可选的 ChatGPT 网页项目名称。仅让此后新建的普通物理会话归入该项目;已有会话不会移动。项目可能带有跨会话记忆,不建议多个互不相关的用户共用同一项目。 |
| gpt_agent_project | 否 | 空 | str | 可选的 ChatGPT 网页项目名称。仅让此后新建的智能体协议会话归入该项目;建议与普通聊天项目分开。 |
| gpt_persona_projects | 否 | {} |
JSON Object[str, str] | 人设名称到网页项目名称的映射。命中时优先于 gpt_chat_project,例如 '{"喵喵":"喵喵日常","助手":"技术助手"}'。 |
| gpt_project_auto_create | 否 | false | bool | 嵌入式核心中,是否自动创建不存在的上述网页项目。远程核心请在核心服务设置 CHATGPTWEB_PROJECT_AUTO_CREATE=true;项目操作失败会退回网页根目录,不中断聊天。 |
| gpt_chat_start | 否 | [] | list | 机器人文字称呼/聊天前缀;普通聊天与插件命令均需 @ 机器人或以此、NICKNAME 中的名称开头,避免群聊误触发 |
| gpt_chat_start_in_msg | 否 | false | bool | 是否把 gpt_chat_start 路由前缀原样交给模型;false 时会移除纯路由前缀,但 NICKNAME 的自然称呼会保留原句主语 |
| gpt_empty_trigger_prompt | 否 | 有人在呼唤你…… | str | 仅提及机器人或只发送聊天前缀时交给模型的角色化提示 |
| gpt_direct_address_context_enabled | 否 | false | bool | 是否额外向模型解释“用户正在直接称呼机器人”;默认关闭,保留如“bot今天吃什么”的原始主语,减少内部提示干扰 |
| gpt_direct_address_context_prompt | 否 | 见配置默认值 | str | 开启上述开关后附加的称呼语境提示;仅供模型理解,不会发送给用户 |
| gpt_begin_sleep_time | 否 | false | bool | 启动登录时随机错开账号,减少多账号同时登录;账号少时通常关闭。 |
| gpt_chat_priority | 否 | 90 | int | 普通聊天匹配器优先级。只有与其他插件抢占消息时才需要调整,数值越小越先执行。 |
| gpt_command_priority | 否 | 19 | int | 插件命令匹配器优先级。通常保持比聊天优先,以便“重置”等命令不会被当作普通对话。 |
| gpt_white_list_mode | 否 | true | bool | true 时普通聊天要求会话白名单或个人白名单;管理权限、CDK 兑换仍有独立规则。 |
| gpt_plus_white_list_mode | 否 | true | bool | true 时高级模型切换需要 Plus 授权;关闭后是否有高级账户仍由上游账户能力决定。 |
| gpt_replay_to_replay | 否 | false | bool | 是否将“回复机器人上一条消息”的事件视为聊天触发。开启会增加群聊中的触发机会。 |
| gpt_ban_str | 否 | [] |
JSON List[str] | 屏蔽词列表;命中后消息不会交给模型。不要把它当作完整内容安全系统。 |
| gpt_manage_ids | 否 | [] |
JSON List[str] | 额外管理会话的稳定访问范围标识。管理员在目标会话使用“会话标识”取得该值后配置。 |
| gpt_save_screen | 否 | false | bool | 保存额外的登录、刷新、渲染失败截图。截图可能含账号或聊天内容,以便debug。 |
| gpt_headless | 否 | true | bool | 是否无头运行 Firefox。以便debug。 |
| gpt_local_js | 否 | false | bool | false 使用联网兼容脚本,便于跟随网页更新;true 使用本地缓存,适合网络排障但可能过期。 |
| gpt_control_host | 否 | 127.0.0.1 | str | 核心账户控制台与同一运行时 API 的监听地址;生产环境必须保持本机回环地址。 |
| gpt_control_port | 否 | 无 | int | 核心控制台和同一运行时 OpenAI 兼容 API 的端口;留空不开启。设置为 8765 时从本机访问 http://127.0.0.1:8765,客户端 API 基址为 http://127.0.0.1:8765/v1。 |
| gpt_control_api_key | 否 | 自动生成 | str | 控制台管理员 API 密钥。控制台可动态创建、轮换或撤销受限客户端密钥,供 OpenCode 等本机客户端调用聊天接口;不要把管理员密钥交给客户端。 |
| gpt_free_image | 否 | false | bool | 允许免费账户上传图片;额度较低且受上游限制,默认关闭。 |
| gpt_file_upload | 否 | false | bool | 允许上传跨平台消息中的普通文件、音频、语音和视频;默认关闭,开启后会下载适配器提供的 URL 或读取原始附件内容。 |
| gpt_file_max_size | 否 | 20971520 | int | 单个普通附件的最大字节数,默认 20 MiB,范围为 1 KiB 至 100 MiB;超限附件不会下载或上传。 |
| gpt_force_upgrade_model | 否 | true | bool | 避免已保存逻辑会话继续选择不适合免费账户的旧模型偏好。 |
| gpt_render_mode | 否 | auto | auto/text/image | 富文本输出全局默认策略:auto 按内容和适配器能力选择,text 始终文本,image 会让不支持原生 Markdown 的适配器优先图片;支持原生富文本的适配器仍保持可读文本与可点击链接。可用“输出模式”在当前聊天范围单独覆盖,默认恢复此配置;渲染异常会回退文本。 |
| gpt_chat_image_template | 否 | native | native/off/路径 | 聊天 Markdown 转图样式。native 是粉蓝紫纵向主题,off 是黑白纵向主题;也可填写含 {{ content }} 的自定义 HTML 模板路径。 |
| gpt_image_font_scale | 否 | 1.0 | 0.85-1.25 | 内置聊天图片、历史聊天、帮助和列表图片的阅读字号缩放。默认 1.0 已按手机竖屏优化;1.1 适合偏好稍大字体的场景,0.9 可在信息密集时略微缩小。自定义聊天 HTML 模板需自行控制字体,不受此项影响。 |
| gpt_history_anonymize | 否 | false | bool | 历史聊天是否隐藏群聊发言者昵称;默认 false,历史图片会显示当时记录的昵称,开启后统一显示为“用户”。 |
| gpt_history_show_identity | 否 | true | bool | 历史聊天是否显示群聊发言者的稳定平台 ID。仅在未匿名化且该条消息带有群聊发言者标签时显示。 |
| gpt_history_show_timestamp | 否 | true | bool | 历史聊天是否显示每轮保存时间。旧数据缺少时间时自动省略。 |
| gpt_history_show_message_id | 否 | false | bool | 历史聊天是否显示核心会话消息 ID,主要用于排障与“回到过去”定位;普通使用建议保持关闭。 |
| gpt_management_recall_after | 否 | 0 | int | 多页帮助、列表、历史等管理输出的自动撤回秒数;0 关闭,适配器不支持撤回时自动忽略。 |
| gpt_context_compaction_mode | 否 | summarize_restart | off/reinforce/summarize_restart | 接近上下文上限时:关闭、仅补发人设、或摘要后迁移到新的网页物理会话;逻辑会话保持不变。 |
| gpt_context_compaction_threshold | 否 | 0.6 | 0.1-0.95 | 估算上下文达到模型上限比例时触发维护。 |
| gpt_context_compaction_min_tokens | 否 | 0 | int | 估算 token 未达到此值不触发维护;0 表示只看比例。 |
| gpt_context_compaction_fallback_window_tokens | 否 | 0 | int | 模型目录未提供上下文窗口时的管理员兜底窗口;0 表示未知窗口不自动迁移。 |
| gpt_context_compaction_max_estimated_tokens | 否 | 0 | int | 本地估算 token 的绝对触发线;0 关闭。可在模型窗口未知时作为保守兜底。 |
| gpt_error_message | 否 | 抱歉,这次没能顺利回应。请稍后再试;若持续发生,请联系机器人管理员。 | str | 聊天请求失败时发送的中性提示,可按机器人身份自定义 |
| gpt_conversation_recovery_message | 否 | 当前对话已无法继续,请重新初始化人设后再试。 | str | 原会话绑定的账号已移除或停用时发送的提示,不暴露账号状态,可按机器人身份自定义 |
| gpt_session_reauthentication_message | 否 | 连接正在自动恢复,请稍后再试一次。 | str | 核心检测到会话令牌过期并已启动自动重新登录时的提示;与普通失败和原会话失效提示分开,避免暴露账号细节。 |
| gpt_reset_wait_message | 否 | 正在回到本次会话的人设开场,请稍候。 | str | “重置”命令等待超过 12 秒时发送的进度提示;只提示任务仍在进行,不替代最终的重置回复。 |
| gpt_session_recovery_wait_timeout | 否 | 60 | 1-600 | 账号正在自动恢复时,单条聊天请求等待就绪的秒数。恢复在此时间内完成时会继续发送原消息;仅超时后才发送 gpt_session_reauthentication_message,无需用户手动重发。 |
| gpt_chat_rate_limit_cooldown_seconds | 否 | 18000 | 60-86400 | 上游未给出明确重试时间时,账号聊天额度等待恢复的估计秒数。核心会优先采用上游的明确等待提示;冷却账号不会承接新会话,旧会话会返回 gpt_rate_limit_message。 |
| gpt_account_selection_strategy | 否 | least_recently_used | least_recently_used/usage_balanced | 新逻辑会话的账号选择策略。默认按最久未使用账号分配;usage_balanced 会在滚动窗口内优先选择近期被分配次数更少的可用账号。既有会话始终固定原账号。 |
| gpt_account_selection_window_seconds | 否 | 18000 | 60-86400 | usage_balanced 的统计窗口秒数。只统计当前进程内已成功预留的新会话,不代表 OpenAI 的剩余额度;建议与免费账户常见额度窗口保持接近。 |
| gpt_auto_init_group | 否 | false | bool | 群聊或频道首次有效聊天时自动加载群聊默认人设;不会覆盖已有逻辑会话。 |
| gpt_auto_init_friend | 否 | false | bool | 私聊首次有效聊天时自动加载私聊默认人设;不会覆盖已有逻辑会话。 |
| gpt_init_group_persona_name | 否 | 空 | str | 群聊自动初始化使用的人设名称。配置不存在的人设会跳过自动初始化并创建普通会话。 |
| gpt_init_friend_persona_name | 否 | 空 | str | 私聊自动初始化使用的人设名称,行为同上。 |
| gpt_agent_enabled | 否 | false | bool | 启用受控智能体入口。所有入口均要求 @ 或昵称;超级用户可在任意会话使用,普通用户仍遵守白名单。 |
| gpt_agent_anchor_sessions | 否 | true | bool | 为重复的独立智能体任务复用隔离协议锚点。安全审查与工具决策各自使用独立的静态根会话;每个任务仍从根分支,不会共享用户消息、工具结果或角色扮演历史。关闭后每次内部请求都创建新会话,适合排障。 |
| gpt_agent_sensitive_task_guard | 否 | true | bool | 是否启用 Agent 敏感任务预检。开启时先做本地规则检查,再以隔离的结构化模型审查意图;模型审查异常按拒绝处理。关闭只影响这层预检,不会放开工具权限、操作确认或上游安全限制。 |
| gpt_agent_sensitive_task_message | 否 | 默认提示 | str | Agent 任务触及内建敏感范围或自定义敏感词时的面向用户提示;仅影响智能体,不影响普通聊天。 |
| gpt_agent_sensitive_terms | 否 | [] |
JSON List[str] | 额外拒绝的 Agent 任务词语。内建的法律、政治及其他高风险敏感范围始终保留,不能通过此项移除。 |
| gpt_agent_confirm_timeout | 否 | 60 | 10-3600 | 单次待确认操作的有效秒数;超时后需要重新计划或重新执行。 |
| gpt_agent_approval_mode | 否 | strict | strict/delegate/full | 超级用户 Agent 的审批档位。strict 每个需确认步骤都停下;delegate 自动执行已标为可委托的受限工作区读写、目录创建、搜索、复制/移动与静态网页截图,文件回传、删除、命令、脚本、网络、服务和跨成员投递仍需确认;full 自动执行已注册工具,仅适合完全自用且已理解风险的环境。工具白名单、路径校验和敏感任务预检始终有效。 |
| gpt_agent_session_approval_timeout | 否 | 1800 | 60-86400 | 仅“本机只读”临时授权的有效秒数。strict 模式下写入、网络和进程控制仍逐次确认;其他档位按 gpt_agent_approval_mode 执行。 |
| gpt_agent_plan_timeout | 否 | 300 | 30-3600 | 模型返回并经插件校验的计划有效秒数;仅原超级用户可在原聊天范围执行一次。 |
| gpt_agent_max_steps | 否 | 8 | 1-20 | 单个智能体任务可连续执行的最大工具步数;达到上限会停止,避免模型循环消耗额度。 |
| gpt_agent_max_model_turns | 否 | 12 | 1-40 | 单个智能体任务最多请求模型决策的次数。工具步数之外的第二层保护,可限制反复规划、修复或工具续答造成的上游额度消耗。 |
| gpt_agent_task_timeout | 否 | 300 | 15-3600 | 单个智能体任务累计实际推进的最长秒数。等待用户确认或等待计划执行不计入该时间;超时后任务停止,需以更小范围重新发起。 |
| gpt_agent_model | 否 | auto | str | 智能体模型决策使用的模型别名;保持 auto 会按核心账户能力选择。 |
| gpt_agent_workspace | 否 | 空 | Path | 智能体文件工具的受限工作目录;只允许其中的相对路径,拒绝绝对路径和 .. 越界。 |
| gpt_agent_workspace_web_render_enabled | 否 | false | bool | 是否启用工作区静态 HTML 截图。仅允许本地 UTF-8 HTML,拒绝脚本、嵌入页面及远程 HTTP 资源;以 960×640 桌面视口渲染。strict 下截图需超级用户确认,delegate 可自动执行。 |
| gpt_agent_workspace_execution_backend | 否 | disabled | disabled / local / docker | 工作区 Python 脚本执行后端。disabled 不注册执行工具;local 直接运行宿主机 Python,仅限开发;docker 使用无网络受限容器,推荐生产。 |
| gpt_agent_workspace_execution_image | 否 | 空 | str | Docker 执行镜像。必须由管理员预先审查、拉取并固定版本;运行时禁止自动拉取。仅在 docker 后端生效。 |
| gpt_agent_workspace_execution_timeout | 否 | 60 | 1-600 | 工作区脚本单次最长运行秒数,超时后终止容器或进程。 |
| gpt_agent_workspace_execution_memory_mb | 否 | 512 | 64-4096 | Docker 工作区脚本内存上限(MiB)。 |
| gpt_agent_schedule_enabled | 否 | true | bool | 注册受控异步提醒工具;到时会回到原逻辑会话,由当前人设生成提醒。普通成员只能提醒自己;超级用户可在消息中实际 @ 一名成员后请求提醒对方,且必须在原聊天范围确认。 |
| gpt_agent_member_enabled | 否 | false | bool | 向已授权的普通用户开放成员安全智能体;当前只提供当前聊天范围内的个人提醒及其查看、取消能力,不提供主机、文件、网络或服务工具。 |
| gpt_agent_member_reminder_limit | 否 | 5 | 1-50 | 单个普通用户在同一聊天范围内允许保留的未到期提醒上限。 |
| gpt_agent_member_scope_reminder_limit | 否 | 20 | 1-200 | 单个聊天范围内由普通用户创建的未到期提醒总上限,避免群聊提醒刷屏。 |
| gpt_agent_command_enabled | 否 | false | bool | 注册通用系统命令工具。仅超级用户入口可用;每次执行均绑定原聊天范围二次确认。拒绝 Shell、提权和直接删除/格式化程序;解释器或服务控制命令会在确认页标为高风险。 |
| gpt_agent_command_timeout | 否 | 30 | 1-600 | 通用系统命令的默认超时秒数。 |
| gpt_agent_command_workdir | 否 | 空 | Path | 通用系统命令允许使用的工作目录根;设置后,模型指定的工作目录不得离开该路径。它不是文件参数的系统级沙箱,确认前仍须核对完整 argv。 |
| gpt_agent_command_skills | 否 | [] |
JSON List[Dict] | 管理员声明的命令技能。每项固定 program 与 arguments 模板,模型只能填写已声明并经本地校验的变量;仅在 gpt_agent_command_enabled=true 时注册,且逐次确认。 |
| gpt_agent_skill_files | 否 | [] |
JSON List[Path] | 本地 UTF-8 JSON 技能文件列表,可与 gpt_agent_command_skills 合并加载。出于供应链安全考虑,不接受会在启动时自动拉取的 GitHub 或其他远端 URL。 |
| gpt_agent_filesystem_scan_enabled | 否 | false | bool | 注册“扫描目录占用”工具。只扫描管理员列出的根目录,不读取文件正文、不跟随符号链接;每次扫描需要原聊天范围确认。 |
| gpt_agent_filesystem_roots | 否 | [] |
JSON List[Path/Dict] | 允许“扫描目录占用”访问的目录。推荐使用 { "name": "机器人目录", "path": "/opt/bot" } 为目录命名;模型只能选择名称,不能填写任意路径。空列表不会注册扫描工具。 |
| gpt_agent_read_roots | 否 | [] |
JSON List[Dict] | 向超级用户 Agent 提供命名的只读诊断目录,例如日志和源码。模型只能选择名称并填写根目录内相对路径;可列目录、查看元数据、搜索 UTF-8 文本、读取指定行或文件尾部,不跟随符号链接、不具备写入能力。每次读取或搜索需原聊天范围确认;只配置可以安全交给模型阅读的目录。 |
| gpt_agent_managed_services | 否 | [] |
JSON List[Dict] | 管理员预先声明的 pid_file 或 tcp 服务;模型不能传入任意进程、端口或 shell 命令。 |
gpt_init_group_pernal_name与gpt_init_friend_pernal_name是历史拼写,仅保留兼容读取;新配置请使用带persona的字段。begin_sleep_time、gpt_lgr_markdown、gpt_httpx、gpt_url_replace已废弃,分别迁移为gpt_begin_sleep_time、gpt_render_mode,或直接删除。
# 账号列表请使用 JSON;session_token 只能辅助短期恢复,不能替代长期重新登录。
# Microsoft 账户可按需配置 help_email;gptplus 只表示优先候选,已弃用,实际能力以账户探测结果为准。mode目前不支持苹果账号
gpt_session='[
{
"email": "[email protected]",
"password": "xxxx"
},
{
"email": "[email protected]",
"password": "xxxx",
"mode": "google"
},
{
"email": "[email protected]",
"password": "xxxx",
"mode": "microsoft",
"help_email": "[email protected]"
},
]'
gpt_proxy='http://127.0.0.1:8080'
# gpt_proxy='http://username:[email protected]:8080'
gpt_group_chat=true
# 可选:把机器人上次成功回复后、当前呼唤前的近期群聊作为普通聊天背景
gpt_group_context_enabled=false
gpt_group_context_max_messages=20
gpt_group_context_max_age_seconds=600
gpt_group_context_max_chars=6000
# 历史图片默认不传;开启后仍需当前账户具备图片上传能力
gpt_group_context_include_images=false
gpt_group_context_max_images=4
# 可选:把后续新建的网页物理会话分类到 ChatGPT Projects。
# 项目记忆可能跨会话生效,不要把互不相关的群或用户混用一个项目。
gpt_chat_project="喵喵日常"
gpt_agent_project="喵喵智能体"
# gpt_persona_projects='{"喵喵":"喵喵日常","技术助手":"技术助手"}'
# 嵌入式核心才使用;远程核心请设置 CHATGPTWEB_PROJECT_AUTO_CREATE=true
gpt_project_auto_create=false
gpt_chat_start=[]
gpt_chat_start_in_msg=false
# NICKNAME 是机器人称呼列表;插件通过 Alconna 的跨平台原始消息抽象保留称呼语境
# 仅 @机器人或只发送聊天前缀时,交给模型生成符合人设的自然回应
gpt_empty_trigger_prompt="有人在呼唤你。请以当前人设自然回应。"
gpt_begin_sleep_time=true
gpt_chat_priority=90
gpt_command_priority=19
gpt_white_list_mode=true
gpt_replay_to_replay=false
gpt_ban_str='[
"我是猪",
"你是猪",
]'
# 管理访问范围标识,可在目标会话执行“会话标识”获取
gpt_manage_ids='["adapter:bot:session"]'
# 发送消息异常和刷新cookie异常截图保存(登录失败截图固定开启,截图保存在bot目录screen下)
gpt_save_screen=false
# 使用无头浏览器
gpt_headless=true
# 使用本地js
gpt_local_js=false
# 核心账户控制台与同一运行时的 OpenAI 兼容 API,默认关闭;仅建议监听本机地址。
# 在控制台的 API Client Keys 区域可动态创建、轮换、撤销供 OpenCode 等本机客户端使用的密钥,无需重启 bot。
# 客户端密钥只能调用聊天/模型接口,不能操作账号、查看运维状态或提交登录验证。
gpt_control_host=127.0.0.1
gpt_control_port=8765
gpt_control_api_key='replace-with-a-long-random-secret'
# 允许免费账户上传图片;额度较低并受上游动态限制
gpt_free_image=false
# 上传文件、音频和视频给当前 ChatGPT 会话;默认关闭以避免自动下载大文件
gpt_file_upload=false
# 单个普通附件最大 20 MiB
gpt_file_max_size=20971520
# 强制升级基础模型,如4o-mini升级到4-1-mini
gpt_force_upgrade_model=true
# 富文本输出策略:auto、text、image
gpt_render_mode="auto"
# 聊天 Markdown 转图主题:
# native:默认粉蓝紫纵向卡片;off:黑白纵向阅读样式(也兼容“关”);
# 也可填自定义 HTML 模板的绝对路径。模板必须包含 {{ content }} 占位符。
# 可复制 nonebot_plugin_gpt/templates/chat-image-template.html 后自行修改。
gpt_chat_image_template="native"
# 图片阅读字号缩放:默认值适合手机竖屏;可在 0.85-1.25 之间微调
# 仅影响内置聊天主题、历史聊天与管理长图;自定义 HTML 模板请直接修改模板 CSS
gpt_image_font_scale=1.0
# 接近上下文上限时,摘要后迁移到新逻辑会话;长期角色扮演建议保留默认值。
gpt_context_compaction_mode="summarize_restart"
gpt_context_compaction_threshold=0.6
gpt_context_compaction_min_tokens=0
# 模型目录没有 contextWindow 时可显式设置,例如 128000;0 表示不猜测。
gpt_context_compaction_fallback_window_tokens=0
# 可选的本地估算绝对上限,例如 60000;0 表示关闭。
gpt_context_compaction_max_estimated_tokens=0
# 多页帮助、列表、历史等管理输出在 60 秒后自动撤回;0 表示关闭
gpt_management_recall_after=60
# 默认保留原始主语,不再向模型额外解释称呼来源。
# 仅在确实需要兼容旧的称呼语境逻辑时开启,并可自行改写附加提示。
gpt_direct_address_context_enabled=false
gpt_direct_address_context_prompt="【对话语境】用户正在直接称呼你,请结合当前人设自然理解消息中的主语,不要提及这段提示。"
# 请求失败时的用户提示,可按机器人身份调整
gpt_error_message="抱歉,这次没能顺利回应。请稍后再试;若持续发生,请联系机器人管理员。"
# 已确认账号会话过期且正在自动重新登录时的提示;不会暴露账号或登录流程
gpt_session_reauthentication_message="bot正在重新连接,请稍后再试一次咩~"
# 账号自动恢复期间,单条聊天请求等待可用状态的最长秒数;超时后才发送上面的恢复提示
gpt_session_recovery_wait_timeout=60
# “重置”命令等待超过 12 秒时发送的进度提示
gpt_reset_wait_message="正在回到本次会话的人设开场,请稍候。"
# 上游没有给出明确重试时间时,免费账户聊天额度冷却的估计时长
gpt_chat_rate_limit_cooldown_seconds=18000
# 新会话账号调度:默认保持最久未使用优先;多账号希望均匀消耗额度时改为 usage_balanced
gpt_account_selection_strategy="least_recently_used"
# usage_balanced 的滚动统计窗口,旧会话仍固定使用其创建时的账号
gpt_account_selection_window_seconds=18000
# 原会话依赖的账号已移除或停用时的提示;不会暴露账号和风控细节
gpt_conversation_recovery_message="当前对话已无法继续,请重新初始化人设后再试。"
# 首次有效聊天时自动初始化人设。它不会覆盖手动初始化或已有逻辑会话。
gpt_auto_init_group=true
gpt_auto_init_friend=true
gpt_init_group_persona_name="群聊"
gpt_init_friend_persona_name="单人"
# 启用智能体;默认只有超级用户拥有本机、文件和服务工具
gpt_agent_enabled=false
# 默认开启:复用仅包含静态协议的内存锚点,减少独立任务的上下文;排障时可设为 false。
gpt_agent_anchor_sessions=true
# Agent 默认拒绝法律、政治及其他高风险敏感任务:本地规则加隔离模型审查;普通聊天不受影响。
# 仅完全自用且了解风险时才关闭;关闭不会绕过工具审批、权限或上游限制。
gpt_agent_sensitive_task_guard=true
# 可补充本机器人不希望 Agent 接触的本地敏感词。
gpt_agent_sensitive_task_message="这个请求不适合交给智能体处理咩。"
gpt_agent_sensitive_terms='["生产数据库", "内部密钥轮换"]'
gpt_agent_confirm_timeout=60
# strict:逐步确认(默认);delegate:仅自动放行受限工作区的低风险链路;full:超级用户完全访问。
gpt_agent_approval_mode="strict"
gpt_agent_session_approval_timeout=1800
gpt_agent_plan_timeout=300
# 三层任务预算:工具步数、模型决策轮数、实际推进时长。等待人工确认不计入任务时长。
gpt_agent_max_steps=8
gpt_agent_max_model_turns=12
gpt_agent_task_timeout=300
gpt_agent_model="auto"
# 文件工具只允许访问此工作目录;不需要文件能力时保持未配置。
gpt_agent_workspace="./data/agent-workspace"
# 静态 HTML 可渲染成 PNG 并随智能体最终回复回传;不执行 JavaScript 或加载远程资源。
gpt_agent_workspace_web_render_enabled=true
# 默认禁用脚本执行。生产环境建议 docker,local 会直接在宿主机运行 Python,仅用于开发调试。
gpt_agent_workspace_execution_backend="docker"
# 使用管理员预先构建、审查并固定版本的镜像;仓库提供 docker/agent-playwright/Dockerfile,构建命令见 docs/agent.md;运行时不会自动拉取镜像。
gpt_agent_workspace_execution_image="nonebot-gpt-agent-playwright:1.60.0"
gpt_agent_workspace_execution_timeout=60
gpt_agent_workspace_execution_memory_mb=512
# 异步提醒会在重启后恢复;设为 false 则不注册该工具。
gpt_agent_schedule_enabled=true
# 向已授权普通用户开放“智能体 10分钟后提醒我喝水”等个人安全能力。
# 它不授予任何主机、文件、网络、服务或命令权限。
gpt_agent_member_enabled=false
gpt_agent_member_reminder_limit=5
gpt_agent_member_scope_reminder_limit=20
# 通用命令默认关闭。开启后模型仍只能提出 argv,且每次由超级用户确认。
gpt_agent_command_enabled=false
gpt_agent_command_timeout=30
gpt_agent_command_workdir="./data/agent-command-workdir"
gpt_agent_managed_services='[{"name":"bot","kind":"pid_file","pid_file":"/run/nonebot.pid","restart_command":["systemctl","restart","nonebot"],"restart_check_seconds":5},{"name":"local-api","kind":"tcp","host":"127.0.0.1","port":8080}]'
# 插件需要一些其他的Nonebot基础配置,请检查是否存在
# 机器人名
NICKNAME=["bot name"]
# 超级管理员用户标识(由所用适配器决定)
SUPERUSERS=["admin user id"]
所有聊天和插件命令都需要先 @ 机器人,或以 NICKNAME / gpt_chat_start 中配置的机器人名称开头;这条规则同样适用于 兑换、帮助和管理命令。命令与第一个参数可连写或以空格分隔,例如 bot名 输出模式文本 和 bot名 输出模式 文本 都会切换到文本输出。
| 指令 | 适配器 | 权限 | 需要@ | 范围 | 说明 |
|---|---|---|---|---|---|
| GPT帮助 / 聊天帮助 [主题] | 兼容 | 无/白名单 | 是 | 群聊/私聊/频道 | 以 @机器人 GPT帮助 或 机器人昵称 GPT帮助 触发;查看总览或会话、人设、模型、管理、授权、智能体帮助。 |
| @bot 聊天内容... | 兼容 | 无/白名单 | 是 | 群聊/私聊/频道 | @或者叫名+内容 开始聊天,随所有者白名单模式设置改变 |
| 初始化 | 兼容 | 无/白名单 | 是 | 群聊/私聊/频道 | 初始化(人设名) |
| plus初始化 | 兼容 | 无/白名单 | 是 | 群聊/私聊/频道 | plus初始化(人设名) 会使用plus账户新开会话,可切换plus模型 |
| 重置 | 兼容 | 无/白名单 | 是 | 群聊/私聊/频道 | 回到当前人设初始化后的起点;复用同一网页会话并创建分支 |
| 另开对话 / 开新篇 | 兼容 | 无/白名单 | 是 | 群聊/私聊/频道 | 保留当前人设、模型和输出偏好,另起新的逻辑与网页会话 |
| 续写前篇 | 兼容 | 无/白名单 | 是 | 群聊/私聊/频道 | 主动整理当前前情并迁移到新的网页会话,继续当前逻辑会话 |
| 上下文状态 | 兼容 | 无/白名单 | 是 | 群聊/私聊/频道 | 查看本地估算 token、模型窗口来源和下一条消息的自动维护判断 |
| 重置上一句 | 兼容 | 无/白名单 | 是 | 群聊/私聊/频道 | 刷新上一句的回答 |
| 回到过去 | 兼容 | 无/白名单 | 是 | 群聊/私聊/频道 | 回到过去 <历史聊天可见轮次/p_id/最后一次出现的关键词>,回到对应时间点 |
| 人设列表 | 兼容 | 无/白名单 | 是 | 群聊/私聊/频道 | 查看可用人设列表 |
| 查看人设 | 兼容 | 无/白名单 | 是 | 群聊/私聊/频道 | 查看人设的具体内容 |
| 添加人设 | 兼容 | 无/白名单 | 是 | 群聊/私聊/频道 | 添加人设 (人设名) |
| 历史聊天 [范围] [倒序] | 兼容 | 无/白名单 | 是 | 群聊/私聊/频道 | 查看当前人格历史聊天记录;人设初始化内容不会展示,可通过 - 或 : 限定范围,如 2-4;添加“倒序”会从最新轮次开始展示,但保留原轮次编号。 |
| 历史会话 | 兼容 | 无/白名单 | 是 | 群聊/私聊/频道 | 查看当前群聊私聊的会话列表,上限30 |
| 切换会话 | 兼容 | 无/白名单 | 是 | 群聊/私聊/频道 | 切换会话 序列号,根据会话列表序号切换会话 |
| 输出模式 [自动/文本/图片/默认] | 兼容 | 无/白名单 | 是 | 群聊/私聊/频道 | 查看或覆盖当前聊天范围的富文本输出策略;默认恢复 gpt_render_mode。 |
| 删除人设 | 兼容 | 超级管理员/超管群 | 是 | 群聊/私聊/频道 | 删除人设 (人设名) |
| 黑名单列表 | 兼容 | 超级管理员/超管群 | 是 | 群聊/私聊/频道 | 查看黑名单列表 |
| 解黑 | 兼容 | 超级管理员/超管群 | 是 | 群聊/私聊/频道 | 解黑<账号> ,解除黑名单 |
| 白名单列表 | 兼容 | 超级管理员/超管群 | 是 | 群聊/私聊/频道 | 查看白名单列表 |
| 工作状态 | 兼容 | 超级管理员/超管群 | 是 | 群聊/私聊/频道 | 查看当前所有账号的工作状态 |
| 智能体 | 兼容 | 超级用户;可选普通用户安全模式 | 是 | 群聊/私聊/频道 | 需启用 gpt_agent_enabled;普通用户还需启用 gpt_agent_member_enabled,仅可管理自己在当前范围的提醒。超级用户可使用本机、文件、服务和命令工具;高风险步骤在原聊天范围等待“智能体 确认 <编号>”。详见 docs/agent.md。 |
| 生成cdk [来源] | 兼容 | 仅超级管理员 | 是 | 任意会话 | 生成一次性会话白名单 CDK,并记录创建者、创建会话与可选来源备注 |
| 生成个人cdk [来源] | 兼容 | 仅超级管理员 | 是 | 任意会话 | 生成一次性个人白名单 CDK,兑换者可在同一适配器的任意会话聊天 |
| 兑换 | 兼容 | 无 | 是 | 群聊/私聊/频道 | 使用 @机器人 兑换 <CDK> 或 机器人昵称 兑换 <CDK>;根据 CDK 类型授权当前会话或兑换者本人,兼容旧别名“出现吧”,每个 CDK 只能兑换一次 |
| cdk列表 / 作废cdk | 兼容 | 仅超级管理员 | 是 | 任意会话 | 查看 CDK 来源和兑换范围,或作废未兑换的 CDK |
| 退出白名单 / 退出个人白名单 | 兼容 | 白名单 | 是 | 群聊/私聊/频道 | 分别撤销当前访问范围或当前用户的白名单;前者兼容旧别名“结束吧” |
| 添加plus | 兼容 | 超级管理员/超管群 | 是 | 群聊/私聊/频道 | 添加plus <稳定标识>,授予自动选择付费账户的权限 |
| 删除plus | 兼容 | 超级管理员/超管群 | 是 | 群聊/私聊/频道 | 删除plus <稳定标识>,撤销付费账户权限 |
| plus切换 | 兼容 | Plus 权限 | 是 | 群聊/私聊/频道 | plus切换 <模型别名或完整模型名>,只更新当前逻辑会话 |
| 全局plus | 兼容 | 超级管理员/超管群 | 是 | 群聊/私聊/频道 | 全局plus 开启/关闭,关闭时禁止普通用户的付费模型切换 |
| 会话标识 | 兼容 | 超级管理员/管理会话 | 是 | 任意会话 | 显示当前访问范围标识,用于授权与管理配置 |
| 删除白名单 | 兼容 | 超级管理员/管理会话 | 是 | 任意会话 | 删除白名单 [访问范围标识];省略时删除当前会话范围 |
| 添加白名单 | 兼容 | 超级管理员/管理会话 | 是 | 任意会话 | 添加白名单 [plus] [访问范围标识];省略时添加当前会话范围 |
<为必填内容>,(为选填内容)
逻辑会话由用户可见的会话列表管理。模型切换不会泄露或展示底层 ChatGPT 会话 ID。
所有插件入口都要求适配器识别为提及机器人,或消息以
NICKNAME/gpt_chat_start的名称开头。私聊是否天然满足提及条件由适配器决定;为避免“发了指令却没反应”,所有平台的聊天、CDK、帮助和管理命令都建议明确 @ 或使用名称前缀。
gpt_group_chat=true时,每一条群聊输入都会在发送给模型前附加固定的[群聊发言者]标签,包含稳定身份、适配器可用的显示名以及唯一reply_target=true标记;近期记录中的成员统一为reply_target=false,避免共享会话沿用上一位用户的称呼。插件不会机械替换模型回复中的姓名。gpt_group_context_enabled=true时,插件会在内存中缓存群聊/频道消息,并在普通聊天被呼唤时,将机器人上一次成功回复之后、当前消息之前的记录作为[最近群聊上下文]交给模型。私聊、管理命令和智能体任务不使用这份背景。- 近期上下文同时受
gpt_group_context_max_messages、gpt_group_context_max_age_seconds和gpt_group_context_max_chars限制:高频群最多取满消息数,低频群只取时间窗内的实际消息,不使用难以预测的频率算法。回复成功后会推进游标,已经交给模型的消息不会重复注入;缓存不落盘,重启后清空,内部上下文也不会显示在“历史聊天”中。 gpt_group_context_include_images=true时,近期记录里的图片会按消息位置和附件名传递。当前触发消息的附件优先,历史图片最多gpt_group_context_max_images张,并继续受gpt_attachment_max_count、gpt_attachment_max_total_size和账户图片上传能力限制;下载或上传失败只会标为不可读取,不会中断本轮聊天。gpt_chat_project、gpt_agent_project和gpt_persona_projects只影响以后新建的物理网页会话:普通聊天按“人设覆盖 > 普通聊天项目”选择,智能体协议会话使用独立的智能体项目。已经绑定网页会话 ID 的逻辑会话保持原处,插件不会自动移动历史会话。ChatGPT Projects 可能带有项目级记忆、指令或文件,适合收纳同一角色、同一用途或同一受信任范围的会话;不要为了网页整洁把不同群、不同用户或敏感人设全部放进同一个项目。默认留空即关闭。此能力依赖 ChatGPT 网页端而非公开 API,核心查找、创建或投递失败时会保留普通根目录会话并记录诊断,不会中断 bot 聊天。嵌入式模式使用gpt_project_auto_create=true自动创建缺失项目;远程模式由共享核心的CHATGPTWEB_PROJECT_AUTO_CREATE=true决定。gpt_history_anonymize=false时,历史聊天会将上述内部标签投影为“用户 · 昵称”;默认还会显示稳定 ID 与保存时间,可分别通过gpt_history_show_identity、gpt_history_show_timestamp关闭。开启匿名化后,昵称与 ID 都不会显示。- 群聊和频道按稳定访问范围共享同一逻辑会话;私聊按用户独立。
历史会话的编号按最近使用排序,切换会话 <编号>必须使用该列表里的编号。 summarize_restart会在接近上下文上限时摘要并迁移到新的网页物理会话,但逻辑会话编号不变;reinforce仅补发人设。续写前篇可随时主动执行同样的摘要迁移,上下文状态会显示本地估算、模型窗口来源和自动判断。网页端不稳定提供真实 token 用量,因此这些数值只作本地估算;模型窗口未知时可通过gpt_context_compaction_fallback_window_tokens或gpt_context_compaction_max_estimated_tokens明确设置自动策略。需要手动强化角色时可用初始化 <人设名> 继续。gpt_render_mode=auto会根据内容复杂度与适配器能力选择文本或图片。Telegram 适配器会将常用 Markdown 转为 UniSeg 原生富文本(包括粗体、代码、列表和 URL);其他适配器遇到复杂 Markdown 时转为图片。长帮助、历史、名单等管理内容优先分页图片;多页时优先以合并引用消息发送。输出模式 [自动/文本/图片/默认]只影响当前适配器内的当前群聊、私聊或频道。该偏好独立于逻辑会话,因此重置、初始化人设或切换逻辑会话后仍会保留;使用@机器人 输出模式 默认或机器人昵称 输出模式 默认即可恢复gpt_render_mode的全局默认策略。
gpt_chat_image_template 仅控制聊天 Markdown 转图片的主题,不影响纯文本输出或管理页面。内置值:native/原生 为粉蓝紫纵向卡片,off/关/plain 为黑白纵向样式。内置主题、历史聊天和管理长图默认采用窄一些的纵向阅读栏,并由 gpt_image_font_scale 统一调整阅读字号。
也可以复制 nonebot_plugin_gpt/templates/chat-image-template.html 后自行修改:
gpt_chat_image_template="./data/gpt/chat-template.html"模板必须包含 {{ content }} 占位符,插件会把 Markdown 转换后的 HTML 注入其中。自定义模板由其自身 CSS 完全控制,因此不会自动应用 gpt_image_font_scale;需要更大字体或更窄正文时,请直接调整模板中的 .sheet 与 .content。模板不存在、缺少占位符或渲染失败时会自动回退为文本,不会中断聊天。
白名单分为会话授权与个人授权:会话授权使用访问范围标识,会将同一群或频道的不同用户归为同一授权范围;个人授权使用“适配器 + 平台(适用时)+ 用户 ID”,仅在同一平台生效。Satori 会额外纳入其
login.platform,不会混淆它承载的不同平台。旧版group/private/qqgroup/qqguild数据会保留兼容读取,其中旧版private白名单继续按 OneBot 用户在群聊和私聊中生效。
超级用户在任意会话执行 生成cdk [来源备注] 后,将机器人返回的兑换指令发送到目标群、私聊或频道即可完成会话授权:@机器人 兑换 <CDK>,或 机器人昵称 兑换 <CDK>。该兑换码只可使用一次,自动绑定目标会话的跨平台访问范围标识,不需要手写群号或适配器类型。
若需要给某一个人加白,使其在未授权群中也能正常提及机器人聊天,使用 生成个人cdk [来源备注]。目标用户在同一适配器任意私聊、群聊或频道发送 @机器人 兑换 <CDK> 或 机器人昵称 兑换 <CDK> 后,个人授权会绑定该用户;不同平台的用户 ID 不会互相冲突。
旧版 cdklist.json 与 cdksource.json 会在首次启动时迁移:未使用的 CDK 可以继续兑换;已经兑换的旧 QQ 记录会保留审计信息,但旧数据只有裸群号/频道号,无法安全推导为新范围标识,因此不会被自动授权。管理员可在 cdk列表 查看这些“旧版已兑换待确认”记录,并按需重新发放 CDK。
先检查网络、代理和账号状态。首次登录、Cloudflare、邮箱验证码或 Firefox 启动异常时,将 gpt_headless=false,在有桌面的机器上观察浏览器并完成必要的人机验证;不要依赖旧版手工复制会话文件的做法。
浏览器安装或损坏时尝试:playwright_firefox install firefox。账号控制台会展示“需要处理”“临时异常”等状态;完成验证后可在本机控制台点击重试登录。
安装更新playwright_firefox时出现 .lock 文件报错时,请删除该文件。
Microsoft 可能要求辅助邮箱验证。按登录页面和本机控制台的提示完成验证;不要在机器人聊天、日志或截图中公开验证码。
OpenAI 原生登录会先尝试密码。上游要求邮箱验证码时,按本机控制台的待处理状态输入验证码后继续。
Google 登录受其自身风控和浏览器环境影响较大。优先在同一机器的可见浏览器中完成 Google 侧验证;不要把导出的 Cookie 或任何会话信息提交、转发或写入公开配置。
插件不会把原始 Markdown 标记直接交给不支持它的平台。Telegram 适配器会转换为其原生富文本实体;其他适配器的复杂 Markdown、链接、表格和长内容会按 gpt_render_mode 转为兼容的纵向图片,普通内容仍尽量以文本发送。图片中的普通 Markdown 链接会编号并附带可复制的完整 URL;可通过 gpt_chat_image_template 调整聊天图片主题。
历史聊天会隐藏初始化、强化人设等私有提示词,并将其余对话从第 1 轮重新编号;回到过去 <编号>使用的也是这个可见编号。历史较长时会分页为图片,渲染或适配器不支持时才回退为分页文本。可使用2-5或:5限定查看范围,也可追加“倒序”,例如 历史聊天 2-5 倒序;倒序只改变展示顺序,不会改变编号或回退目标。
历史图片中的普通 Markdown 链接会显示为“标题[编号]”,图片页底部会列出对应标题和完整 URL,便于在图片中查看和手动复制;不会在图片发送后额外刷出一条参考链接文本。网页私有引用标记依赖上游元数据;旧历史未保存来源映射时会被隐藏,不会伪造出处。
使用llonebot可能导致发出的合并消息的图片,在旧版pcqq上无法显示,临时解决方法是,手动转发该消息一次
由 nonebot-plugin-localstore 决定。请通过该插件的文档或运行环境查看实际数据目录;不要在脚本中假定固定的旧版会话目录。
见 nonebot_plugin_localstore 插件说明,通常为用户目录下
# linux
~/.local/share/nonebot2/nonebot_plugin_gpt/\{bot_name\}# windows
C:\Users\UserName\AppData\Local\nonebot2\nonebot_plugin_gpt\\{bot_name\}纯新部署可以直接聊天;如果自动初始化配置的人设尚未创建或已删除,插件会跳过自动初始化,让用户首条消息创建普通无角色会话,不会自动套用“默认”人设。1.0.3版本历史人设和旧授权数据会在启动时尽力迁移。
帮助、工作状态、黑白名单、人设、CDK、历史会话和历史聊天会优先分页图片。多页图片优先使用 Alconna 合并引用消息发送;当前适配器不支持时才逐张发送,渲染环境异常时回退分页文本。人设、黑白名单、白名单和 CDK 列表均最新在前;人设继续保留原始编号。
SUPERUSERS 与 gpt_manage_ids 指定的管理会话可以在未加白的范围内执行管理命令。普通聊天始终遵守 gpt_white_list_mode,不会因管理员偶然发言绕过群聊白名单。会话 CDK 用于授权当前聊天范围;个人 CDK 用于授权兑换者在同一适配器的其他会话。
智能体由 ChatGPTWeb 的结构化 Agent 决策协议驱动:核心只生成受工具白名单约束的下一步,插件负责本地校验、权限确认、实际执行和结果回送。入口仅限 SUPERUSERS;它支持受限工作区的目录、读写、搜索、精确替换、复制/移动、单文件删除与产物回传,静态网页截图、可选的 Docker 工作区脚本执行、管理员预配置服务、可选的无 Shell 系统命令和异步提醒。管理员还可以配置命名的只读日志、源码或诊断目录,供智能体搜索异常、读取相邻行并交叉定位实现,但模型不能填写任意路径或修改其中内容。模型可以组合这些原子能力完成多步任务,但不能直接获得任意路径、网络、Shell 或主机权限。普通成员的安全模式只允许管理自己在当前范围的提醒;超级用户若要提醒他人,必须在任务消息中实际 @ 该成员,机器人会先返回确认编号,确认后才会安排。任务同时受工具步数、模型决策轮数和实际推进时限约束;等待人工确认或计划执行不消耗任务时限。上游达到限额时会使用 gpt_rate_limit_message,其他模型故障使用 gpt_error_message,不会向聊天暴露内部错误。Agent 默认以本地规则与隔离模型审查拒绝法律、政治和其他高风险敏感任务;可通过 gpt_agent_sensitive_terms 追加本地限制,或用 gpt_agent_sensitive_task_guard=false 关闭本地预检,但普通聊天不受影响。完整配置、权限与安全边界见 docs/agent.md。
2026.07.16 1.1.3
- 跨平台支持(未全量测试)
- 更稳定的底层依赖
2025.08.11 1.0.3
- 修复cf问题
- 修复openai和microsoft登录问题
- google暂时无法登录,等待后续修复
- openai可能也无法登录
2025.07.27 1.0.2
- 修复windows下无法使用的问题
- 修复onebot适配器bug导致发不出合并消息
- 优化带有元数据的markdown消息展示
2025.07.20 1.0.1
- 升级httpx版本至0.28.1,修复其参数
- 优化底层,增强可用性,如果有问题请尝试
playwright_firefox install firefox - 增加了历史会话列表
- 增加了切换历史会话功能
- 默认会开启联网搜索,下版本增加独立会话开关
- 修复联网搜索导致的消息不完整
- 增加了gpt生成和搜索到图片的获取展示
- 更新模型列表与官网一致,增加了强制升级基础模型功能(gpt-4-1-mini)
- 增加了历史聊天树
- 增加历史聊天转图片问题,详见上方说明
- 更改了plus相关逻辑,现在切换模型不会切换会话,但只有被标记为使用plus账号的会话,才能切换模型
- 轻微改变
工作状态显示
2025.02.09 0.0.43
- 添加openai登录验证码填写功能
- 修复微软账户登录步骤
- 修复消息有时接收处理错误的问题
2024.12.12 0.0.42
- 更新可用性
- 调整黑名单列表为100条一张图,多图发送
2024.12.01 0.0.40
- 修复插件无法使用的问题
- 优化工作状态查看,增加白名单状态
- 添加发送消息异常和刷新cookie异常截图保存(登录失败截图固定开启,截图保存在bot目录screen下)
- readme添加cf验证操作步骤说明
2024.07.28 0.0.39
- 添加使用plus模型时,可上传文件(目前只支持图片)
- 继续尝试修复长时间运行时,access_token过期未自动刷新的问题
2024.07.21 0.0.37
- 添加并修改默认使用模型喂gpt-4o-mini(3.5仍然可用但性能下降很多)(4om和3.5免费用户都可用,但3.5预计迟早下架,所以不建议使用,也就偷个懒,不添加非plus用户切换3.5功能了)
- 更新openai接口
2024.07.16 0.0.36
- 修复0.0.35版本中,未正确捕获自身入群事件的问题
- 自动初始化人设添加频道相关支持
- 尝试修复长时间运行时,access_token过期未自动刷新的问题
2024.07.15 0.0.35
- 修复0.0.34造成的gpt plus账户会话失败的问题
- 优化添加人设名称识别
- 添加新功能,入群/加好友后,自动初始化人设,让bot一个人出门在外也更加顺畅
2024.07.12 0.0.34
- 修复部分消息接收失败问题
2024.07.11 0.0.33
- 添加QQ适配器 Url 输出替换
- 优化登录流程
- 优化消息超时问题
- 添加代理用的用户名密码
2024.06.23 0.0.32
- 修复多账户下相关命令换号发送的情况
- 优化了登录部分
- 修复上次更新导致的一个bug,让私聊用户丢失了原有的会话,本次更新后原有私聊用户会话会切换回去,在两次更新期间的新用户会话会丢失(偷个懒,就不做迁移了)
2024.06.15 0.0.31
- 优化登录方式
- 优化google登录缓存
- 优化白名单列表,新增部分plus白名单单独显示,提示两种白名单模式独立运作
2024.06.11 0.0.29
- 修复openai新cookie跨域问题
- 修复google登录问题
- 优化了token和状态显示
2024.06.04 0.0.28
- 添加gptplus账户支持及其gpt4 4o模型使用
- 修复windows下数据目录异常问题
- 添加QQ适配器图片发送支持
- 优化图片间距
- 修复添加账户后,会话数计数错误
2024.05.20 0.0.26
- 修复非全局代理下,websocket灰度账号代理未生效的问题
2024.05.16 0.0.25
- 修复websocket账号未正常工作的bug
- 跟进openai新(旧)token验证
- 修正工作状态会话数标题错误
- 为白名单列表添加cdk生成源信息,方便溯源
2024.05.10 0.0.24
- 跟进新token生成验证
- 为初始化人设异常时添加错误提示
2024.05.07 0.0.23
- 修复webssocket url未更新
- 优化工作状态输出会话数遮蔽问题
- 修复空数据时未正确重试的问题
- 兼容pyd2
2024.05.06 0.0.20
- 优化登录和消息接收流程
- 优化初始化时多bot账号主体发送消息不对的问题
- 兼容新websocket接收方式(我以为都SSE了)
2024.05.04 0.0.18
- 跟进openai新搞得幺蛾子验证(加班太累了,更晚了)
- markdown被人作没了,唉(吐槽)
- 目前只简单实现了新验证,代码很乱,抽空应该会优化
2024.04.18 0.0.17
- 跟进新markdown发送方式
2024.04.17 0.0.15
- 尝试解决持久连接接收不到消息的问题
- 添加markdown消息用户自定义开关(QQ适配器md能力待支持)
- 优化markdown消息发送时,人设名未匹配消除的问题
2024.03.24 0.0.13
- 修复qq适配器的人设列表无法显示的问题
- 添加了会话超时时间,避免意外情况导致session阻塞
- 优化了工作状态显示,目前login为登录中,登陆后未工作则为ready
- 添加了全cookie保存,降低重新登录异常的风险
2024.03.22 0.0.12
- 临时修复了一些错误
- 优化多账户私聊混乱问题
2024.03.20
- 没有新功能增加,临时更新一下添加httpx关闭配置(现默认关闭),目前它还有些问题。新流程还没写完,等下次放假。
2024.03.17
- 优化了底层代码,减少错误,暂不支持gpt plus账号(待填坑)
- 支持拉格兰md发送
2024.03.13
- 兼容拉格兰合并转发,修复合并转发失败的问题
- 添加自定义聊天前缀,现在可以不用@也能触发了
2024.03.11
- 临时修复200问题(chatgpt新的websocket问题),最近好忙,等闲了的时候再优化,有什么问题都可以先提issue
2024.02.19
- 临时修复200问题 与 添加 微软辅助邮箱验证
自用挺久了,匆忙改改发出来,很多东西还没补充
