feat: 为全部 39 个 Rust 源文件添加系统性中文注释
为整个项目添加了详尽的中文文档注释,覆盖所有模块: 入口与架构: - main.rs — 架构图、数据流、4 个关键设计决策 - cli.rs — 所有 CLI 子命令中文化 - Cargo.toml — 每个依赖的作用说明 - channel/mod.rs — 渠道标识设计意图 核心守护进程与消息队列: - daemon.rs — 三消费者架构图、审批流 - queue/* — 公平轮转算法、路由调度架构 LLM 层: - types.rs — Role/Message/ToolCall 等每个字段含义 - provider.rs — Provider trait 设计 + SSE 解析 - conversation.rs — 工具循环流程图、摘要机制 - deepseek.rs — API 请求格式 上下文管理: - context/types.rs — ChatSession 消息生命周期 - context/builder.rs — Token 预算管理策略 - context/tools.rs — MemoryStore 双写策略 工具系统: - tools/mod.rs — 两层元工具架构图 - tools/approval.rs — 审批流程 - tools/definitions.rs — 声明式工具三要素 - tools/subprocess.rs — 执行流程 + 缓存策略 数据库与状态: - db/* — 5 张表用途、回退策略 - state.rs — 文件存储回退方案 - scheduler.rs — SKIP LOCKED 防重复 已废弃模块: - ipc.rs — 旧 UDS 协议 - worker.rs — 旧 vs 新架构对比
This commit is contained in:
@@ -1,16 +1,30 @@
|
||||
//! JSON 工具定义 — 像 curl + jq 一样描述一个工具
|
||||
//! ## JSON 工具定义格式
|
||||
//!
|
||||
//! 三要素:URL → 取节点 → 选字段
|
||||
//! 本模块定义了一种"声明式工具"格式 —— 只需要写一个 JSON 文件就能注册一个新工具,
|
||||
//! 无需改 Rust 代码、重新编译。
|
||||
//!
|
||||
//! ### 设计理念:像 curl + jq 一样描述工具
|
||||
//!
|
||||
//! ```json
|
||||
//! {
|
||||
//! "name": "stocks",
|
||||
//! "description": "股票行情",
|
||||
//! "url": "https://api.example.com/stocks",
|
||||
//! "description": "股票行情查询",
|
||||
//! "url": "https://api.example.com/stocks/{{code}}",
|
||||
//! "method": "GET",
|
||||
//! "headers": { "Authorization": "${env:API_KEY}" },
|
||||
//! "extract": "data.items",
|
||||
//! "fields": ["name", "price"]
|
||||
//! }
|
||||
//! ```
|
||||
//!
|
||||
//! ### 三要素
|
||||
//! 1. **URL** — API 端点模板(支持 `{{var}}` 和 `${param:name:type}` 传参)
|
||||
//! 2. **取节点** — `extract` 字段指定 JSON 点路径(类似 jq)
|
||||
//! 3. **选字段** — `fields` 字段只保留需要的字段
|
||||
//!
|
||||
//! ### 参数推导
|
||||
//! 自动从 URL/Body/Headers 中推导参数定义(无需手动写 parameters 字段),
|
||||
//! 也支持显式 `parameters` 声明以获得更精确的类型描述。
|
||||
|
||||
use std::collections::HashMap;
|
||||
|
||||
@@ -60,7 +74,22 @@ impl<'de> serde::Deserialize<'de> for HttpMethod {
|
||||
}
|
||||
}
|
||||
|
||||
/// 一个 JSON 工具定义
|
||||
/// ## JSON 工具定义(ToolDef)
|
||||
///
|
||||
/// 描述一个通过 HTTP API 调用的外部工具。
|
||||
///
|
||||
/// ### 字段说明
|
||||
/// * `name` — 工具名称,用作 `call_capability` 的 name
|
||||
/// * `description` — 工具描述(给 LLM 看的)
|
||||
/// * `url` — URL 模板,支持 `{{var}}` 和 `${param:name:type}` 两种传参
|
||||
/// * `method` — HTTP 方法(GET/POST/PUT/DELETE),默认 GET
|
||||
/// * `headers` — HTTP 请求头,值可包含 `${env:KEY}`(环境变量)、
|
||||
/// `${cmd:command}`(命令输出)、`${param:name:type}`(参数值)
|
||||
/// * `body` — POST/PUT 的 JSON body 模板,同样支持变量替换
|
||||
/// * `parameters` — 显式参数声明(可选,未声明时自动推导)
|
||||
/// * `extract` — JSON 提取路径,如 "data.items"
|
||||
/// * `fields` — 筛选要保留的字段
|
||||
/// * `timeout` — 超时秒数,默认 30
|
||||
#[derive(Debug, Clone, serde::Deserialize)]
|
||||
pub struct ToolDef {
|
||||
/// 工具名称,用作 call_capability 的 name
|
||||
|
||||
Reference in New Issue
Block a user