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:
2026-07-08 14:58:13 +08:00
parent 279d89b87a
commit 7d5140c8d2
49 changed files with 2330 additions and 1185 deletions
+10 -6
View File
@@ -2,14 +2,18 @@
## 概述
TOOLKIT WORKFLOW 让你通过编写 YAML 文件来定义 LLM 工具。一个 YAML 文件描述一个工具:它接受哪些参数、调用哪些 HTTP API、如何从响应中提取数据、以及最终返回什么给 LLM。
TOOLKIT WORKFLOW 让你通过编写 YAML 文件来定义外部 HTTP 能力。一个 YAML 文件描述一个能力:它接受哪些参数、调用哪些外部 HTTP API、如何从响应中提取数据、以及最终返回什么给 LLM。
模型初始只暴露三个入口工具:`query_capabilities``query_capability_detail``call_capability`。YAML 能力不会直接出现在初始 tools 数组中,必须先查询能力列表或详情,再通过 `call_capability` 按能力名称和参数调用。
核心能力:
- 一个 YAML 文件 = 一个完整的 LLM 工具,无需写代码
- 一个 YAML 文件 = 一个完整的 HTTP 能力,无需写代码
- 支持多步 HTTP 请求链,步骤之间可以传递变量
- 流程控制:`next` 跳转步骤、`jump` 降级到备源、`abort` 终止执行
- 键级缓存:`cache` 缓存变量,同一调用中缺键自动重请求
- 统一提取:`extract` 字段,语法自描述引擎(路径 / 正则)
- 工具分类:`api` 能力用于发现和调用 iAs 内部 HTTP API`http` 能力来自 `tools/*.yaml` 外部 API 配置。
- 内部 HTTP API 不再为每个 endpoint 维护一个重复 AI 能力。模型应先调用 `query_api_docs` 查询功能分组、endpoint_id、参数和请求体,再调用 `call_http_api` 执行具体 endpoint。
---
@@ -19,9 +23,9 @@ TOOLKIT WORKFLOW 让你通过编写 YAML 文件来定义 LLM 工具。一个 YAM
| 字段 | 必填 | 类型 | 说明 |
|------|------|------|------|
| `name` | 是 | string | 工具名,对应 LLM function.name |
| `desc` | 是 | string | 工具描述,对应 LLM function.description |
| `params` | 否 | array | LLM 可见的参数定义,映射为 function.parameters JSON Schema |
| `name` | 是 | string | 能力名,对应 `call_capability.name` |
| `desc` | 是 | string | 能力描述,会出现在 `query_capabilities` 和能力详情中 |
| `params` | 否 | array | 能力参数定义,映射为 `query_capability_detail` 返回的 JSON Schema |
| `env` | 否 | array[string] | 该工具依赖的环境变量名列表,仅作文档和校验 |
| `steps` | 是 | array | 请求步骤链,按顺序执行 |
@@ -205,7 +209,7 @@ var:
| 语法 | 来源 | 示例 |
|------|------|------|
| `${param:key}` | LLM 传入的工具参数 | `${param:city}``${param:order_id}` |
| `${param:key}` | `call_capability.parameters` 传入的能力参数 | `${param:city}``${param:order_id}` |
| `${env:VAR}` | 系统环境变量 | `${env:API_KEY}``${env:BASE_URL}` |
| `${stepN:var_name}` | 第 N 个步骤提取的变量,N 从 0 开始 | `${step0:token}``${step1:status}` |