Commit Graph
16 Commits
Author SHA1 Message Date
Metona Dev b6c51393f8 fix: 修复图片传输 + 记忆开关 + 统一图标
1. fix: 开启工具调用后图片无法传给AI
   - agent-engine.ts: images 为空文字时自动生成分析提示
   - input-area.ts: 图片+文字合并为单条消息,避免历史消息中图片丢失

2. fix: 记忆弹框自动记忆开关点击无响应
   - memory-modal.ts: CSS 类名 memory-toggle → toggle-label,启用完整滑块样式

3. chore: 统一应用图标为科技感羊驼
   - llama.png / llama.ico: 霓虹电路风格羊驼图标
2026-04-16 13:50:29 +08:00
thzxx 466df86fe4 feat: 移除系统提示词功能,由记忆系统替代
- 移除设置面板中的系统提示词开关和文本框
- 移除 input-area 和 agent-engine 中的系统提示词注入逻辑
- 移除 state/KEYS 中 SYSTEM_PROMPT 和 SYSTEM_PROMPT_ENABLED
- 移除 types.d.ts 中对应的 StateKey 类型
- 更新 README.md 设置表和帮助文档
- 记忆系统已完全覆盖系统提示词的功能,且更智能:自动提取、跨会话持久化、按相关性动态注入
2026-04-15 19:53:54 +08:00
thzxx 83fe7ba4ce fix: 清理 TOOL_USAGE_GUIDE 中引用已删除字段的规则 2026-04-08 13:16:34 +08:00
thzxx d9e9416d35 feat: 工作空间与 AI Tool Calling 深度集成
核心变更:
- 新增 execWorkspaceCommand() 无超时进程执行(workspace.ts)
- 新增 workspace:execTool IPC 通道(无超时,5MB 输出上限)
- run_command 工具改用 workspace IPC,移除 30s 超时限制
- run_command 默认启用(需用户确认),AI 上下文注入工作空间目录
- Agent Loop 工具执行:run_command 无超时,其他工具保持 30s
- Agent 系统提示词新增工作空间规则(userTerminated/truncated 反馈)

UI 修复:
- Header z-index 提升至 50,Model Bar 提升至 40,Input Area 提升至 30
- 工作空间面板 top 调整为 90px(header + model-bar),不再遮挡菜单
- Input Area 增加 position: relative 确保 z-index 生效

其他:
- 新增 docs/DEVELOPMENT.md 开发规范文档
- 设置面板 run_command 开关文案优化,默认值改为 true
2026-04-07 22:24:58 +08:00
thzxx 5d0fff7f01 fix: 工作空间执行日志接入 + AI 工具提示词补充 run_command 指引 2026-04-07 20:13:48 +08:00
thzxx 06e1900435 fix: Agent Loop 注入工具路径上下文引导,避免连续操作时路径丢失 2026-04-07 11:05:52 +08:00
thzxx a80baf363c fix: 修复 AI 回复 token 统计信息显示
- 直接 API 路径:增强 finalStats 捕获,从任意包含统计的 chunk 兜底收集
- Agent Loop 路径:新增 total_duration / eval_count 统计回传
- chat-area.ts: 修复 falsy 判断(eval_count=0 也应显示)
- agent-engine.ts: onDone 回调新增 stats 参数
2026-04-07 01:56:17 +08:00
thzxx 60152fb443 refactor: 清理渲染进程全部 58 处 console.log/warn/error
- 所有错误日志统一走 logService(logError/logWarn/logInfo)
- 无 logService 的地方补上对应调用
- 纯调试 trace 直接删除(桌面应用看不到 console)
- ollama.ts 流式解析错误改为静默跳过(非关键)
- 执行日志面板信息量不变
2026-04-07 01:42:56 +08:00
Metona Dev e71a307f33 docs: 对齐 Ollama 官方 Tool Calling 文档,补充关键注释
对照 docs.ollama.com/capabilities/tool-calling JavaScript 示例:
- 确认 assistant 消息格式:content + thinking + tool_calls 三者共存
- 确认工具结果格式:{role: 'tool', tool_name, content}
- 确认 Agent Loop 结构与官方一致
- 补充流式 tool_calls 累积逻辑的注释
2026-04-06 20:43:33 +08:00
Metona Dev a9c56582d0 fix: 工具执行 IPC 卡死问题 — 多层超时保护
问题:确认工具操作后 Agent Loop 卡死在'正在思考中',工具未执行。

修复:
- tool-registry.ts: executeTool() 新增 25 秒 IPC 硬超时
- agent-engine.ts: executeTool 内部 .catch 捕获异常,防止 reject 逃逸
- ipc.ts: tool:execute handler 外层 try-catch 确保始终返回响应
- 全链路添加 console.log 便于排查
2026-04-06 20:41:56 +08:00
Metona Fix 70fef8e969 debug: 添加详细调试日志定位工具调用卡死问题
在 agent-engine.ts 和 ollama.ts 的关键节点添加 console.log:
- 流式调用开始/结束/错误
- 工具调用列表和参数
- 确认框弹出和用户确认结果
- 工具执行开始/结果
- messages 数组长度变化
- 每个 Loop 迭代的完整状态
- Ollama API 请求/响应/流结束
2026-04-06 19:43:00 +08:00
Metona Fix 1033cefdfb feat: 添加左侧实时执行日志面板
功能:
- 日志面板位于聊天区左侧,可折叠/展开
- 实时展示所有执行事件:
  - 🤔 模型思考过程
  - 📡 流式响应状态
  - 🔧 工具调用(参数+结果)
  - ⚠️ 错误和警告
  - ℹ️ Agent Loop 迭代
  -  操作完成
- 日志自动滚动、最大 500 条、可清空
- 等宽字体显示,按级别着色
- 头部新增日志开关按钮
2026-04-06 19:14:51 +08:00
Metona Fix 0f25921fb9 fix: 修复工具调用确认后卡死问题
根本原因:
1. 模型能力检测缺少 tools 检查 — gemma4 等模型不支持 Tool Calling 但代码允许启用
2. 流式调用无超时保护 — 模型无限思考时无法自动恢复
3. AbortController 竞态 — 确认对话框后状态同步问题

修复内容:
- 模型能力检测增加 tools 字段检查,模型栏显示 🔧 Tools 标签
- Agent Loop 流式调用增加 2 分钟单次超时保护
- 开启 Tool Calling 时自动检测模型兼容性并警告
- 设置面板开启 Tool Calling 时检查并提示不兼容模型
- 输入区域 Agent Loop 分支增加模型支持检测和用户提示
2026-04-06 19:02:34 +08:00
Metona 43c827e9ff fix: 修复工具调用确认后卡死问题
- 工具确认按钮添加 e.stopPropagation() 防止事件冒泡到 overlay
- 防止重复绑定 overlay click handler (initialized flag)
- 新确认打开时自动取消旧确认,防止竞态条件
- 工具执行添加 30 秒超时保护,防止 IPC 挂起
- Agent Loop 添加 5 分钟全局超时
- 每轮循环检查 abort 信号
- 工具执行失败时输出 console.error 便于调试
2026-04-06 18:15:18 +08:00
thzxx dc43db7d9c feat: Agent 记忆系统替代预设功能,全功能协调运作
核心改造:
- 取消 Agent 预设(保留兼容),新增 AI Agent 记忆系统
- 自动提取 → 存储 → 检索 → 注入上下文的完整记忆闭环
- 记忆类型:事实/偏好/规则/事件,支持重要性评分和标签

新增文件:
- services/memory-manager.ts: 记忆管理核心
  - 关键词+标签+重要性加权检索
  - 会话结束自动提取(LLM 驱动)
  - 去重检测、使用频率追踪
- components/memory-panel.ts: 记忆管理面板 UI

修改文件:
- types.d.ts: 新增 MemoryEntry/MemorySearchResult 类型
- db/chat-db.ts: 升级 v2,新增 memories 存储
- input-area.ts: 对话流集成记忆检索+自动提取
- agent-engine.ts: Agent Loop 注入记忆上下文
- settings-modal.ts: 记忆开关设置
- main.ts: 记忆系统初始化
- index.html: 记忆设置面板 HTML
- style.css: 记忆面板完整样式

功能协调:
- 对话流: 记忆检索 → RAG 检索 → 系统提示词组合 → 流式对话
- Agent Loop: 记忆检索 → 系统提示词注入 → 工具调用循环
- 会话结束: 自动提取关键信息 → 存入记忆库
- 跨会话: 记忆持久化 IndexedDB,新对话自动召回相关记忆
2026-04-06 13:44:45 +08:00
thzxx 5bfb137a8a feat: v3.0 Tool Calling — AI 本地文件操作系统
新增文件:
- src/main/tool-security.ts: 路径白名单/黑名单、命令安全检查
- src/main/tool-handlers.ts: 7个工具实现(read/write/list/search/create/delete/run)
- src/renderer/services/tool-registry.ts: 工具注册调度中心
- src/renderer/services/agent-engine.ts: Agent Loop 流式多轮工具调用引擎
- src/renderer/components/tool-confirm-modal.ts: 高风险操作确认对话框

修改文件:
- types.d.ts: 新增 ToolCall/ToolResult/ToolCallRecord 等类型
- ollama.ts: chatStream 支持 tools 参数
- ipc.ts: 新增 tool:execute/getConfig/setAllowedDirs IPC
- preload.ts: 暴露 tool API
- chat-area.ts: 渲染工具调用卡片
- input-area.ts: 集成 Agent Loop 引擎
- settings-modal.ts: 工具调用开关设置
- index.html: 工具调用设置面板 + 确认对话框 HTML
- style.css: 工具调用卡片、确认对话框样式
- main.ts: 初始化工具调用配置
2026-04-06 13:29:43 +08:00