11 Commits

Author SHA1 Message Date
oudecheng
1019dbe8cc refactor(code-quality): 清理 clippy 存量告警(unwrap/clone/redundant 等)
- 移除无用克隆与冗余引用,减少不必要内存分配
- 规范 unwrap/expect 使用,修复可提前失败路径
- 修复 anthropic provider llm_timeout_secs 死代码并补全超时日志
- cargo fmt 统一格式
2026-08-16 23:22:22 +08:00
oudecheng
0f60b02ede chore(log): 缩减 INFO 日志量,高频诊断日志降级/删除
1. 删除缓存诊断日志 4 处(openai.rs):排查已完结,字段已补齐,每次 LLM 调用都刷屏。
2. 删除 AgentPromptProvider 模型配置日志(agent_prompt_provider.rs):排查遗留,每次请求刷。
3. AgentFactory 创建日志 info→debug(agent_factory.rs):每轮对话刷,降级保留供偶发排查。
4. Calling tool / Tool calls detected info→debug(agent_loop.rs):每次工具调用都刷,全量参数打印开销大,tracing 在未启用级别时不评估字段。
5. LoadTaskMessages 3 条日志 info→debug(load_task_messages.rs):每次前端 trigger 都刷,一次 3 条。
6. 旧结果诊断日志 info→debug(execution.rs):每条消息首次 agent 迭代都触发。
7. pending subagents 日志 info→debug(processor.rs):子代理运行期高频率重复触发。
8. Updating current_session_id 仅变化时打(ws.rs):old==new 时每条消息都刷,无信息量。
编译通过,测试全绿。
2026-08-15 23:10:39 +08:00
oudecheng
457f6b2408 feat(retry): 为 LLM 主调用添加可配置重试机制,默认 3 次
- config: ProviderConfig 增加 max_retries 字段(serde default=3,向后兼容)
- config: LLMProviderConfig 透传 max_retries,不进 ProviderRuntimeConfig(保持 provider 构造包纯净)
- agent: AgentRuntimeConfig 增加 max_retries,归属 agent 行为层
- agent_loop: 流式 + summary 两个调用点实现重试循环
  - 指数退避 1s/2s/4s,仅对 429/502/503/504/timeout/connection reset 重试
  - 流式仅在未 emit delta 时重试(AtomicBool 跟踪),避免重复输出
  - 退避 sleep 期间响应 cancel_signal,取消优先
- 前端: ProviderConfig 类型和表单增加 max_retries 字段
- 测试: 7 个单元测试(3 判定 + 4 行为),540 个 lib 测试全绿
2026-08-04 12:53:33 +08:00
oudecheng
fef5ae7626 fix: 修复 P0 级技术债(useEffect 依赖项缺失 + prompt 注入吞错)
P0-1: web/src/App.tsx 话题刷新 useEffect 依赖项不完整
  - 原依赖数组仅 [topicRefreshTrigger],但 effect 体内使用了
    status/handleCommand/sendMessage/requestTopicList
  - 导致断线重连后 status 从 disconnected→connected 时
    effect 不会重新运行,话题刷新被静默丢失(stale closure bug)
  - 补全依赖数组为 [topicRefreshTrigger, status, handleCommand,
    sendMessage, requestTopicList],与同文件 200-208 行 effect 风格一致

P0-2: src/gateway/agent_prompt_provider.rs 静默吞错
  - record_injection 中 let _ = repository.mark_agent_prompt_reinjected(...)
    丢弃了 Result 错误
  - 失败时 Agent prompt 注入计数错乱且无任何日志
  - 改为 if let Err(e) = ... { tracing::warn!(...) } 记录 session_id 和 error
2026-07-08 14:33:22 +08:00
oudecheng
5ceafb1fd7 feat: 添加配置应用诊断日志,便于排查 AgentFactory 实例与工具列表 2026-07-03 16:33:01 +08:00
oudecheng
97c0e46348 feat(tests): 增加工具调用序列清理的单元测试,确保孤立工具结果的正确处理 2026-06-16 16:52:00 +08:00
oudecheng
d1d4998a26 feat: 增加工具结果字符限制,提升处理能力至 100,000 字符 2026-06-04 17:33:01 +08:00
b571d7b7b3 feat: 添加图片上下文限制配置,支持最大图片数量和消息轮次限制 2026-05-24 18:06:22 +08:00
oudecheng
bad36aa412 fix: 修改 AgentPromptProvider 中的字段命名,确保一致性 2026-05-14 15:46:41 +08:00
oudecheng
e712fd7645 feat: 修改提示词注入逻辑,确保每次处理用户消息时动态注入系统提示词;优化消息历史记录获取顺序 2026-05-14 11:28:53 +08:00
oudecheng
a06fceaf0c feat: 添加系统提示词提供者,支持动态注入和组合多个提示词源 2026-05-13 14:55:50 +08:00