wunianxiao
|
e20cd19e57
|
chore: 增强日志追踪与代码格式化
- daemon: 添加 LLM 回合开始/结束标记日志,工具执行结果追踪
- daemon: 发送消费者日志增强(显示完整文本、截断用户 ID)
- conversation: 移除日志截断,输出完整工具调用参数和结果
- deepseek: 代码格式化,预留请求/响应摘要日志
- 删除 systemd/ias.service
|
2026-06-16 22:53:19 +08:00 |
|
wunianxiao
|
f608c27f8a
|
refactor: 移除文件状态并修复工具上下文关联
|
2026-06-16 20:18:34 +08:00 |
|
wunianxiao
|
1d78567102
|
清理废弃代码,重构长期记忆系统
核心变更:
- 删除 worker.rs + ipc.rs(废弃进程架构)
- 删除 ias listen 路径(cmd_listen / listen_loop / ToolExecutor)
- 合并 ias service → ias daemon --log-file
- 修复 main.rs call_capability 不处理上下文工具的 bug
MemoryStore 重构:
- write_for 空内容防御 + 精确去重
- 缓存结构 Vec<String> → Vec<(i32, String)>(用数据库 id 标识)
- 新增 delete_for / update_for 方法 + LLM 工具定义
- load_if_needed 避免每次消息查 DB
- 缓存 TTL(1h) + 每用户 200 条上限
- read_for limit 参数(默认 30 条)
daemon.rs:
- execute_tool 统一为递归派发,消除 call_capability 重复路由
净减少约 1400 行代码,0 warning,20 测试通过
|
2026-06-16 11:56:36 +08:00 |
|
wunianxiao
|
5a54368437
|
工具系统重构与定时任务管理
1. 工具抽象体系
- 新增 Tool trait + ToolRegistry 注册表
- 三种工具类型:ApiTool / StdioTool / ShellTool
- 全局 REGISTRY (LazyLock) 作为主入口
- BuiltinRegistry 简化为兼容层
2. 定时任务管理工具
- 新增 manage_scheduled_tasks 工具(ApiTool)
- 支持 list/add/update/delete/toggle 五种操作
- 通过 LazyLock 延迟初始化数据库连接池
3. 定时任务分流
- 新增 task_type 字段(model / system)
- 模型可自由管理 model 任务
- system 任务只读,修改操作被拒绝
4. CLI 支持
- 新增 ias task 子命令(list/add/update/delete/toggle)
5. 清理
- 删除废弃的 ias-auth 独立二进制
- SkillResult 增加 Deserialize derive
- 所有调用点更新为 crate::tools::xxx 新入口
|
2026-06-10 16:00:47 +08:00 |
|
wunianxiao
|
f7d0781090
|
chore: 修复 clippy 错误(loop never loops → if-let)并应用自动修复
|
2026-06-10 10:17:25 +08:00 |
|
wunianxiao
|
713cbb7cc3
|
fix: 修复 daemon 架构中 3 个 blocking 正确性 bug
1. call_capability 元工具不可用
- execute_tool() 中缺失 call_capability 处理分支
- 添加解包 {name, prompt} → 提取目标工具并派发的逻辑
2. tool_call_id 传空字符串
- Tool Consumer 中 tool_call_id 被 _ 忽略,ToolResult 传空串
- 改为使用 LLM 原始 tool_call_id 传递
3. 高风险工具审批无限循环
- Tool Consumer 无条件触发审批,approved_tool 从未被读取
- ToolCall 新增 approved 字段,已批准的工具跳过审批
- ToolExecutor 根据 approved_tool 设置标记
4. Session TTL 时间戳不更新(should-fix)
- ToolResult 回喂时更新 last_access,防止长对话被误清理
5. 其他清理
- load_memories 魔数字符串比较改为 starts_with
- _sock_path 添加文档说明保留用于兼容
- MessageKind::ToolCall 新增 approved: bool 字段
|
2026-06-09 22:10:39 +08:00 |
|
wunianxiao
|
23c7fbac62
|
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 新架构对比
|
2026-06-09 20:52:24 +08:00 |
|
wunianxiao
|
937556917c
|
refactor: worker进程 → tokio task 架构 + 多渠道消息队列 + JSON工具系统
核心变更:
- daemon: 废弃 worker 子进程模型,替换为 LLM/Tool/Send 三消费者 tokio task
- queue: 新增公平轮转 MessageQueue + QueueRunner 路由,严格 ChannelId 渠道隔离
- channel: ChannelId(platform + user_id) 统一渠道标识,替代散列 user_id+platform
- tools: 全部工具统一经由 execute_tool() → Tool Consumer 单一执行路径
- llm: chat_with_tools 返回 ChatResult,支持异步工具调用 → 保留/恢复 session
- tools: 新增 JSON 工具定义系统 (ToolDef) 及 SubprocessRunner (HTTP 模板引擎)
- bin: ias-auth 独立 JWT 生成器,ias-fetch headless Chrome 网页抓取
- 所有出站消息通过 Send Consumer 队列转发,无直接 send_text 调用
- Session TTL 清理 (5分钟),QueueRunner 通道容错
- cargo check 零警告,cargo test 23/23 通过
|
2026-06-09 16:32:49 +08:00 |
|
wunianxiao
|
b2fe054eaf
|
feat: 高德地图工具 + 多轮 bug 修复
新增:
- 高德地图 6 个内置工具: amap_poi_search, amap_geocode, amap_reverse_geocode, amap_route_plan, amap_travel_plan, amap_map_link
- CLI 子命令: ias tool amap (poi-search/geocode/route-plan/travel-plan/map-link)
- 工具优先级指南: build_capability_guide() 含 amap > weather > web_search 优先级
- DEFAULT_SYSTEM_PROMPT 内置工具优先级说明(不再依赖环境变量)
Bug 修复:
1. (HIGH) call_capability 参数契约修复 — 新增 unpack_call_params() 统一解包 prompt 字段
2. (MEDIUM) 天气 hours=0 不再调用逐时 API
3. (MEDIUM) 长期记忆 daemon 双写缓存+DB,无 DB 不丢失
4. (HIGH) 审批流程状态语义修复 — handle_reply 返回 ApprovalDecision,拒绝/过期不再当作通过
5. (HIGH) 审批有效期基于 expires_at 时间戳而非 receiver drop
6. (MEDIUM) 摘要保存改为 current_user_id 与读取一致
7. (MEDIUM) worker 审批通过后删除孤立 tool result,仅保留 approved_tool 状态放行
架构:
- daemon + worker IPC 架构 (Unix Domain Socket)
- build_capability_guide 共享函数消除 main.rs/worker.rs 重复
|
2026-06-03 17:01:04 +08:00 |
|