feat: AI 工具架构重构与微信增强 (0.2.17 → 0.2.22)
0.2.17 收束模型初始工具列表: - 仅暴露 query_capabilities/query_capability_detail/call_capability 三个入口 - API 能力统一通过 iAs HTTP API 封装,删除重复 YAML 工具 0.2.18 系统提示词拆分: - 固定系统提示词硬编码,动态附加部分 AI 可维护 - 新增 update_additional_system_prompt 能力和持久化 0.2.19 上下文增强与打断语义: - /new 拥有最高打断语义,取消运行中任务并清除当前 turn - raw_message JSONB 原文入库,群聊按 group_id 隔离作用域 - 工具调用说明替代动态附加系统提示词 0.2.20 微信输入中状态: - 改用官方 getconfig + sendtyping 流程,显式管理 typing 状态 0.2.21 API 文档功能分组: - /v1/api-docs 返回 groups,帮助 AI 按功能面发现接口 0.2.22 AI API 能力去重: - 移除与 HTTP endpoint 重复的专用能力,统一用 query_api_docs + call_http_api - 删除不再编译的 web/memory 工具文件
This commit is contained in:
@@ -1,5 +1,56 @@
|
||||
# 更新日志
|
||||
|
||||
## 0.2.22 - 2026-07-08
|
||||
|
||||
- AI API 能力去重:移除与 HTTP endpoint 一一重复的专用能力(如 web 页面、邮件查询、长期记忆和工具调用说明写入包装),统一改为 `query_api_docs` 发现接口、`call_http_api` 按 `endpoint_id` 调用接口。
|
||||
- 新增通用 API 能力 `call_http_api`,会根据 `/v1/api-docs/{endpoint_id}` 校验接口路径和方法,支持 `path_params`、`query`、`body`,并为 `context` 分组接口自动补当前用户作用域身份和内部鉴权。
|
||||
- 删除不再编译的 AI 专用 API 包装文件,保留 `query_tool_call_instruction` 作为 `query_capabilities` 内部读取工具调用说明的实现。
|
||||
- 无数据库结构变化;新增 `0.2.22` 升级日志记录,`ias-ai` 升级至 `0.1.11`,`ias-service` 升级至 `0.1.19`,`ias-main` 升级至 `0.2.22`;已验证 `cargo fmt --check`、`cargo check`、`cargo test -p ias-ai` 和 `cargo test -p ias-service`。
|
||||
|
||||
## 0.2.21 - 2026-07-08
|
||||
|
||||
- HTTP API 文档新增功能分组说明,`/v1/api-docs` 会返回 `groups`,描述 `system`、`updates`、`api-docs`、`web`、`mail`、`console`、`context` 等 API 面向及主要功能,方便 AI 先判断有哪些接口能力。
|
||||
- API 文档搜索会把功能分组的标题、说明、功能面和关键词纳入匹配;例如查询“未读”“邮箱目录”可直接命中邮件相关接口。
|
||||
- `query_api_docs` 的列表输出会先展示 API 功能分组,并在每个 endpoint 简表中补充完整说明;查询单个 endpoint 时会附带所属功能分组说明。
|
||||
- 无数据库结构变化;新增 `0.2.21` 升级日志记录,`ias-ai` 升级至 `0.1.10`,`ias-http` 升级至 `0.1.13`,`ias-service` 升级至 `0.1.18`,`ias-main` 升级至 `0.2.21`;已验证 `cargo fmt --check`、`cargo check` 和 `cargo test -p ias-http`。
|
||||
|
||||
## 0.2.20 - 2026-07-08
|
||||
|
||||
- 微信“输入中”状态改用官方 `getconfig` + `sendtyping` 流程:按用户获取并缓存 `typing_ticket`,再发送 typing/cancel 状态,不再依赖 `/sendmessage` 的 `message_state=1` 中间态。
|
||||
- 服务队列在最终回复发出后、空回复结束时和 `/new` 打断当前 turn 时会显式取消微信输入中状态,避免提示残留。
|
||||
- 微信发送请求补齐 `base_info`,并默认发送 `iLink-App-Id=bot` 请求头;仍可通过 `WEIXIN_APP_ID` 覆盖。
|
||||
- 无数据库结构变化;新增 `0.2.20` 升级日志记录,`ias-wechat` 升级至 `0.1.1`,`ias-service` 升级至 `0.1.17`,`ias-main` 升级至 `0.2.20`;已验证 `cargo check` 和 `cargo test -p ias-wechat`。
|
||||
|
||||
## 0.2.19 - 2026-07-08
|
||||
|
||||
- `/new` 现在拥有上下文队列内的最高打断语义:收到后会停止当前输入中状态、取消同一用户作用域正在运行的 LLM/工具任务、清除当前 turn,并立即开启新上下文;迟到的 assistant、工具提醒或工具结果会按 turn_id 丢弃,不再写入新上下文。
|
||||
- 聊天记录新增 `raw_message` JSONB 原文入库;用户、assistant 和 tool 消息都会保存可追溯 JSON,读取上下文时优先从 raw JSON 重新序列化出 `content`、`tool_calls` 和 `tool_call_id`,旧字段继续兼容历史数据。
|
||||
- 微信入口会把上游 `message_id`、`session_id`、`group_id` 和 `create_time_ms` 带入上下文 raw 记录;同一 session 内相同外部消息 ID 的重复用户消息会自动去重。
|
||||
- 群聊上下文 scope 现在优先使用 `group_id`,避免同一发送者在私聊和不同群聊之间串上下文;私聊继续保持原有 `channel:account_id:from_user_id` 形式。
|
||||
- 数据库会先自动结束同一 scope 中较旧的重复活跃会话,再新增同一 scope 仅允许一个活跃上下文会话的唯一约束,避免异常重试或多实例情况下产生隐性多活会话。
|
||||
- 模型响应兼容纯工具调用场景的 `content=null`,请求消息序列化不再发送空的 `tool_call_id` / `tool_calls` 字段。
|
||||
- 将“动态附加系统提示词”改为“工具调用说明”:说明不再进入系统提示词,只随 `query_capabilities` 展示,用于记录用户提供的工具调用规则、调用顺序、优先使用内部 API 等偏好,以及 AI 调用过程中总结出的可复用经验。
|
||||
- 新增内部接口 `POST/PATCH /v1/context/tool-instructions` 和 API 能力 `record_tool_call_instruction`;上下文模拟器改为展示独立的工具调用说明,并在 messages 预览中保留 `tool_calls`、`tool_call_id` 和 `raw_message`,用于观察不同上下文组成是否合理。
|
||||
- 数据库新增 `ias_context_messages.raw_message`、`ias_context_messages.external_message_id`、`ias_context_sessions` 活跃会话唯一约束和 `ias_tool_call_instructions` 表,并会把旧 `ias_additional_system_prompts` 中已有内容迁移为工具调用说明;`ias-common` 升级至 `0.1.2`,`ias-context` 升级至 `0.1.4`,`ias-ai` 升级至 `0.1.9`,`ias-http` 升级至 `0.1.12`,`ias-service` 升级至 `0.1.16`,`ias-main` 升级至 `0.2.19`。
|
||||
|
||||
## 0.2.18 - 2026-07-08
|
||||
|
||||
- 固定系统提示词新增工具调用说明和约束:只允许直接调用三入口工具,具体能力必须通过 `call_capability` 调用;工具结果、长期记忆、会话摘要和动态提示词都不能覆盖硬编码固定规则。
|
||||
- 系统提示词拆分为硬编码固定部分和 AI 可维护的动态附加部分;固定部分在代码中生成且优先级最高,动态部分只允许补充偏好和工作方式。
|
||||
- 新增 API 能力 `update_additional_system_prompt`,AI 可在当前用户作用域内更新或清空动态附加系统提示词,并记录修改原因。
|
||||
- 新增内部接口 `PATCH /v1/context/system-prompt` 和数据表 `ias_additional_system_prompts`,按 scope 持久化动态附加系统提示词。
|
||||
- 上下文组装和上下文模拟器会读取动态附加系统提示词,并在固定系统提示词之后、长期记忆和摘要之前插入。
|
||||
- 数据库新增 `ias_additional_system_prompts` 表;新增 `0.2.18` 升级日志记录,`ias-context` 升级至 `0.1.3`,`ias-ai` 升级至 `0.1.8`,`ias-http` 升级至 `0.1.11`,`ias-service` 升级至 `0.1.15`;已验证 `cargo test` 和 `bun run build`。
|
||||
|
||||
## 0.2.17 - 2026-07-08
|
||||
|
||||
- 收束模型初始工具列表,仅暴露 `query_capabilities`、`query_capability_detail` 和 `call_capability` 三个入口工具;其它能力直接调用会被拒绝,必须通过 `call_capability` 按名称和参数调用。
|
||||
- `query_capabilities` 改为只返回能力名称和描述,并按 `api` / `http` 分类;`query_capability_detail` 返回单个能力的完整参数、来源、分类和 JSON Schema;`call_capability` 支持 `name`、`parameters` 和可选提示语 `text`。
|
||||
- API 能力统一表示通过 iAs HTTP API 封装的能力,新增 API 版 `query_mail_messages`;删除重复的 YAML 邮件查询能力。
|
||||
- HTTP 能力统一表示 `tools/*.yaml` 定义的外部 API 调用能力;删除天气测试 YAML,YAML 扫描只加载 `.yaml/.yml` 并保持排序。
|
||||
- 控制台工具页和上下文模拟器同步展示入口工具、API 能力和 HTTP 能力分组,避免调试请求继续直接暴露底层能力。
|
||||
- 无数据库结构变化;新增 `0.2.17` 升级日志记录,`ias-ai` 升级至 `0.1.7`,`ias-service` 升级至 `0.1.14`,`ias-http` 升级至 `0.1.10`;已验证 `cargo test` 和 `bun run build`。
|
||||
|
||||
## 0.2.16 - 2026-07-07
|
||||
|
||||
- 修复 AI 内置页面工具在配置了受保护公开地址时,请求 `/v1/web/pages` 命中 NetBird 鉴权页并返回 401 的问题。
|
||||
|
||||
Reference in New Issue
Block a user