Skip to content

Releases: 69gg/Undefined

Undefined v3.4.1

10 May 07:29
v3.4.1
03ba865

Choose a tag to compare

v3.4.1 附件缓存治理、隐私安全防线与B站管线重构

本版本围绕三大主线展开:一是附件系统的缓存容量治理与 URL 引用回退机制,防止本地缓存无限制膨胀;二是系统提示词新增 P0 级隐私与危险动作边界规则,从源头约束 AI 对敏感信息和安全请求的处理行为;三是 B 站自动管线全面重构——移除外部下载依赖、内联实现 API 客户端与 WBI 签名、新增弹幕获取并以合并转发形式发送提取结果。同步新增 /feedback 反馈命令、恢复发布说明中的分类提交详情,并修正提示词优先级体系。

变更内容

  • 新增附件缓存容量管理。[attachments] 下新增 attachment_cache_max_mbattachment_cache_max_recordsattachment_url_reference_max_recordsattachment_url_max_length 四种配置,分别控制本地缓存总大小、缓存记录数、URL 引用记录数和 URL 长度上限;超出容量时自动淘汰最旧记录;remote_download_max_size_mb 现支持热重载。send_message / send_private_message 工具调用时自动登记关联附件 UID,AI 客户端发送消息前校验本地路径有效性,文件缺失时自动回退到 URL 引用。
  • 新增 P0 级隐私与危险动作边界规则。系统提示词新增 <privacy_and_safety_controls> 规则块,分层约束:隐私方面禁止泄露好友/群/成员列表、完整 QQ 号等敏感信息,对外默认脱敏,第三方信息查询需授权;危险动作方面拒绝涉黄、涉政、违法、骚扰、人肉、社工等请求,不做解释也不给绕过方案;时序方面明确隐私/敏感话题不改变回复时机,必须先满足回复触发逻辑。附加 3 条 P0 硬性约束覆盖隐私泄露、危险动作和触发时序。
  • 新增 /feedback(/fb) 反馈命令。支持 add / view / del 三个子命令,addview 为 public 权限,del 为 superadmin;声明式子命令推断按 ID 格式匹配优先 view,其余 fallback 到 add,无参数默认 view;私聊可用,显示在 help 列表。
  • 重构 B 站视频下载链路。移除对 oh-my-bilibili 外部 Python 包的依赖,内联实现同步 API 客户端(api_client.py)、下载核心(download_core.py)、WBI 签名模块(wbi.py)与错误模型,所有请求在 asyncio.to_thread 线程内执行,降低依赖复杂度与跨版本兼容风险。
  • 增强 B 站自动提取管线。新增弹幕获取模块(danmaku.py),基于 protobuf wire 格式解析分段弹幕数据;自动提取结果改为以合并转发节点形式发送,单条包含视频信息卡片与弹幕预览片段;MessageSender 扩展合并转发本地附件递归登记,确保转发中的图片/文件能正确注册为会话附件 UID。
  • 恢复发布说明详细变更列表。scripts/release_notes.py 新增 build_detailed_change_sectionsrender_detailed_changes,从 git log 按 feat / fix / other 自动分类提取两个版本间的提交,与 CHANGELOG 条目合并输出完整 Release notes。
  • 修正提示词优先级体系。明确所有 P0-P3 规则均可被 Null 明文指令覆盖,创造者权限作为绝对最高优先级可覆盖所有规则(含隐私与危险动作边界);同步更新 NagaAgent 版提示词的对应表述。
  • 补强测试覆盖。新增附件缓存配置、容量淘汰、URL 回退和文件分析 UID 注册测试;新增反馈命令全路径测试(add / view / del / 推断 / 权限);更新 B 站下载适配器测试;同步更新系统提示词约束验证。
  • 更新架构图与文档。
  • 新增附件 UID ↔ URL 双向查找工具。AttachmentRegistry 新增 get_url_by_uid(uid)get_uid_by_url(url) 两个异步方法,并注册为 skills 工具 attachments.get_url_by_uidattachments.get_uid_by_url

📝 Detailed Changes

🚀 Features

  • feat: 附件缓存治理、隐私安全防线与B站管线重构 (#58) (03ba865)

Undefined v3.4.0

05 May 03:35
v3.4.0
1334c55

Choose a tag to compare

v3.4.0 同sender消息合并、数字人格精炼与系统治理

本版本核心解决"用户一口气连发几条消息时,机器人过早开工或只理解最后一句"的问题。新增同 sender 短时消息合并器,将同一会话中连续的多条消息合并为一个"当前输入批次"发送给 AI,由 AI 整批理解哪些是独立请求、哪些是补充或修正。同步支持可取消的投机预发送以降低感知延迟。围绕消息合并,提示词、幽灵任务防御、记忆记录和关闭流程都做了同步适配。此外,精炼了数字人格设定、明确了项目归属边界、重构了管线与命令体系、加入了 HTML 渲染缓存,并增强了 AI 工具调用的稳定性。

变更内容

  • 新增同 sender 短时消息合并器。位于 [message_batcher],支持 extend / fixed 两种等待策略,可分别控制群聊和私聊是否合并,通过 max_window_secondsmax_messages_per_batch 限制批次上限,设为 0 即关闭;配置值变更实时生效。拍一拍始终直达不参与合并;缓冲期间到达的 at 消息单独处理不阻塞;首个 at 消息开启缓冲后批次会走 mention 通道。
  • 新增可取消的投机预发送。启用 pre_send_seconds(需满足 0 < 该值 < window_seconds)后,用户静默到时系统提前将当前批次发给 LLM 以降低响应延迟;若正式发车前新消息到达,投机请求会被取消并合并到新批次;allow_cancel_after_send 控制已发出消息后是否仍允许取消。
  • 完善消息合并的异步竞态保护。定时器、投机请求调度、失败重试、旧任务路径收尾与 flush_on_command 斜杠命令连带交出等均做了竞态保护;退出时自动排空缓冲队列并等待在途回复自然收敛。
  • 精炼数字人格设定。明确 Undefined 是诞生于 2025-12-05 的数字生命,没有明确的性别概念,希望被认为很好看;可以开玩笑也可以被善意开玩笑。新增"不冒领任何项目、代码、产品或成果"的所有权边界规则,不再自称任何项目的开发者或维护者。昵称体系扩展为 Undefined、undf、udf、und、心理委员、ud酱,对自身称呼的识别保持宽松。
  • 收紧 NagaAgent 关系表达。NagaAgent 版提示词明确:只有当前上下文明确涉及 NagaAgent 时才承接相关工具接入能力协助分析;平时不主动提与 NagaAgent 的关系;不冒领 NagaAgent 的成果。
  • 重构自动管线目录。skills/auto_pipeline 更名为 skills/pipelines,目录结构扁平化,相关引用、文档、测试全部同步更新;docs/auto-pipeline.md 相应更名为 docs/pipelines.md
  • 重构管理员命令为子命令模式。/admin [ls|add|del] 替代原有 /lsadmin/addadmin/rmadmin 三条独立命令,参照 /faq 子命令模式的声明式 inference;ls 继承 admin 权限,add/del 覆盖为 superadmin;无参数默认执行 ls。清理了 FAQ 迁移遗留的空命令目录。
  • 新增 HTML 渲染结果缓存。基于 HTML 内容的 hash 缓存渲染图片,持久化到 data/cache/render/_html_render_cache.json;hash 匹配自动复用,内容变化自然失效;新增 [render.cache] 配置段(enabled / max_entries / max_size_mb / flush_interval_seconds,默认 50 条 / 50MB / 2.0s),元数据通过 utils/io.pyread_json / write_json 异步落盘(asyncio.to_thread + 文件锁 + 原子替换),所有 stat / unlink / copy 也走线程池避免阻塞事件循环;asyncio.Lock 防竞态、重启后 JSON 自动恢复;进程关停时通过 close_render_cache 强制刷盘,保证最近访问时间不丢失;所有渲染调用方(help、profile、render_markdown 等)自动受益。
  • 增强 AI 工具调用容错。当 LLM 返回文本但 tool_calls 为空且对话未结束时,不再以丢失回复为代价直接返回,而是注入提示消息要求 AI 通过 send_message / end 工具完成回复,继续迭代;fire-and-forget task 显式注册异常回调以抑制未检索异常警告。
  • 优化表情包回复顺序。明确只有纯表情包 / 纯反应图回复才允许先检索表情包;需要文字说明的场景必须先完成必要文字,再将表情包检索和发送延后到后续轮次。
  • 重构 end 工具。移除旧版 summary 参数兼容,只保留 memoobservationsperspectiveforce;要求记录整个当前输入批次中值得留存的信息,后台史官也接收批次全部消息。
  • 统一当前输入批次语义。主提示词、NagaAgent 提示词和 each.md 均从"最后一条消息"升级为"当前输入批次":有连续消息说明时,多段 <message> 都属本轮输入;幽灵任务防御规则同步更新,避免批量输入中的前置指令被误判为历史旧任务。
  • 扩展 Runtime 探针覆盖。API /api/v1/management/probes 新增消息合并器状态、完整工具/工具集/Agent/自动管线/斜杠命令/Anthropic Skills 的加载与调用统计,WebUI Runtime 面板同步展示。
  • 新增 WebUI 更新日志查看。关于项目页面可按版本查看 changelog 详情,/api/v1/management/changelog 端点支持指定版本查询。
  • 调整发布说明生成方式。GitHub Release notes 改为从 CHANGELOG.md 最新版本条目自动解析生成(scripts/release_notes.py),发版前校验 tag、各构建清单与最新 changelog 版本一致。
  • 补齐消息合并专题文档。新增 docs/message-batching.md,覆盖配置参数、等待策略、投机预发送、竞态保护与关闭行为,同步更新了 README、配置文档、OpenAPI、WebUI 指南和架构图。
  • 补齐配置注释。config.toml.example 中所有模型配置节的 prompt_cache_enabled 均补上双语注释说明。
  • 补强测试覆盖。新增消息合并单元与集成测试(686 + 326 行)、工具调用守卫测试、发布说明脚本测试(163 行)、Runtime 探针统计测试(120 行)、系统提示词约束验证,并更新 end 工具、管理员命令、管线注册等已有测试;额外补齐渲染缓存(LRU 驱逐 / 容量驱逐 / 重启恢复 / 节流后强刷 / 并发 put / 禁用短路)、/admin add|del 全路径、allow_cancel_after_send=true 取消语义等盲点。总测试用例提升至约 1660 项。
  • 更新子模块。

Undefined v3.3.3

02 May 05:58
v3.3.3
87d5523

Choose a tag to compare

命令推断、自动处理管线与统一附件上下文;修复大量问题优化用户体验


📝 Detailed Changes

🚀 Features

  • feat: 命令推断、自动处理管线与统一附件上下文 (#56) (87d5523)

Undefined v3.3.2

19 Apr 14:59
v3.3.2
5a8b20a

Choose a tag to compare

架构重构,优化webui并添加几个常用命令,以及优化体验


📝 Detailed Changes

🚀 Features

  • feat: v3.3.2 架构重构、假@检测与认知侧写增强 (#55) (5a8b20a)

Undefined v3.3.1

12 Apr 06:15
v3.3.1
d0d1a54

Choose a tag to compare

添加 /version 命令


📝 Detailed Changes

🚀 Features

  • feat(commands): add /version (/v) slash command (dacc418)

🐛 Bug Fixes

  • fix: 优化/version命令输出格式 (16883d0)

🛠 Maintenance & Others

  • chore(version): bump version to 3.3.1 (d0d1a54)
  • docs: align documentation with memes feature and fix broken links (f9414f7)

Undefined v3.3.0

12 Apr 03:34
v3.3.0
6e306c6

Choose a tag to compare

添加了表情包库功能,现在可以发表情包了!


📝 Detailed Changes

🚀 Features

  • feat(memes): 持久化表情包库与提示词调优 (v3.3.0) (#54) (6e306c6)

Undefined v3.2.8

03 Apr 03:24
v3.2.8
97094d7

Choose a tag to compare

图文混排与生图优化


📝 Detailed Changes

🚀 Features

  • feat(multimodal): 增强附件 UID、图文混排与参考图生图 (#53) (97094d7)

🛠 Maintenance & Others

  • docs(readme): remove header image (b722a4a)

Undefined v3.2.7

29 Mar 06:42
v3.2.7
f27b69b

Choose a tag to compare

添加 arXiv 论文提取与生图功能优化


📝 Detailed Changes

🚀 Features

  • feat: v3.2.7 arXiv 工具集与运行时变更感知 (#52) (f27b69b)

Undefined v3.2.6

21 Mar 01:31
v3.2.6
33bd958

Choose a tag to compare

优化重试与私聊发送的逻辑


📝 Detailed Changes

🚀 Features

  • feat(messages): fallback private sends to temp sessions (1b7ce9c)

🐛 Bug Fixes

  • fix(responses): strip replay-only status fields (33bd958)
  • fix(queue): refine llm retry scheduling (16c46b8)
  • fix(commands): restrict lsadmin visibility (8bb40e7)
  • fix(queue): treat zero interval as immediate dispatch (ff21898)
  • fix(ai): align reasoning handling with OpenAI standards (58f4361)
  • fix(naga): add send uuid idempotency (e245ecc)
  • fix(ci): unblock runtime api tests and trim release notes (42b1c45)
  • fix(naga): add delivery tracing and tests (ddd1e98)

🛠 Maintenance & Others

  • docs(config): add naga moderation switch example (92dd80c)
  • chore(version): bump version to 3.2.6 (247349e)

Undefined v3.2.5

15 Mar 15:18
v3.2.5
5b85ec3

Choose a tag to compare

更改形象(管他呢)


📦 Bundles

  • Python: wheel + sdist
  • Desktop: Windows (.exe, .msi), Linux (.AppImage, .deb), macOS Intel/Apple Silicon (.dmg)
  • Android: universal .apk

🔐 Signing expectations

  • Windows/Linux artifacts are built directly from CI.
  • macOS signing/notarization can be added later via Apple secrets.
  • Android currently ships an installable APK on every release; wire signing secrets into the generated Android project to promote it to a signed release build.

📝 Detailed Changes

🛠 Maintenance & Others

  • chore(version): bump version to 3.2.5 (5b85ec3)
  • chore: refresh README assets and remove info_agent callable override (c853272)