orca.ai/thoughts/ledgers/CONTINUITY_ses_1fd1.md
大森 e18dde7c15 feat: implement TUI with bubbletea and multi-agent collaboration
- Add bubbletea/lipgloss/glamour dependencies for TUI
- Create internal/tui package with EventWriter, styles, and bubbletea Model
- Support streaming output display in conversation window
- Add right panel with statistics and active agent status
- Implement multi-agent collaboration with sub-agents
- Add AgentCallTool for delegating tasks to sub-agents
- Support parallel tool execution with goroutines
- Auto-discover sub-agents from ~/.orca/prompts/ directory
- Fix orchestrator routing based on msg.To field
- Add non-blocking event writer with timeout to prevent blocking
2026-05-10 14:28:17 +08:00

83 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
session: ses_1fd1
updated: 2026-05-08T14:24:46.168Z
---
# Session Summary
## Goal
使 Orca Agent Framework 能够识别和调用 `~/.agents/skills` 目录下的 skills同时集成 DeepSeek LLM 提供商支持。
## Constraints & Preferences
- 保持与现有 Ollama 集成的兼容性
- 默认使用 DeepSeek (deepseek-v4-flash)
- Skills 目录: `~/.agents/skills`
- Prompt-based tool calling (兼容不支持原生 function calling 的模型)
- 流式输出支持
## Progress
### Done
- [x] 实现 DeepSeek 客户端 (`pkg/llm/deepseek.go`) - 支持 Chat 和 Stream API
- [x] 更新配置系统支持 Provider 字段 (ollama/deepseek)
- [x] 默认 Provider 改为 DeepSeek默认模型 deepseek-v4-flash
- [x] 更新 Kernel 根据 Provider 创建对应 LLM 后端
- [x] 更新 CLI 支持 DeepSeek 环境变量 (DEEPSEEK_API_KEY, DEEPSEEK_MODEL 等)
- [x] 添加流式输出支持 (streamWriter, streamChat/syncChat)
- [x] 修复 sandbox 默认工作目录为当前目录 (`.` 而非 `/tmp/orca/sandbox`)
- [x] 修复 skills 加载路径为 `~/.agents/skills`
- [x]`main.go` 中添加 `k.InitPlugins()` 调用以加载 skills
- [x] 在 LLMAgent 中添加 skillManager 字段和 WithSkillManager 选项
- [x] 将 skill 信息注入系统提示 (buildSystemPrompt)
- [x] 所有 11 个包测试通过
### In Progress
- [ ] Skill 调用机制优化 - LLM 识别到 skill 后需要正确使用 skill 知识回答问题,而不是用 exec 工具查找 skill 目录
### Blocked
- (none)
## Key Decisions
- **默认 Provider 使用 DeepSeek**: 用户明确要求API key 已嵌入配置
- **Prompt-based tool calling**: gemma4:e4b 不支持原生 function calling需要通过系统提示注入工具描述LLM 输出 JSON 格式调用工具
- **Skill 信息注入系统提示**: 将可用 skills 的名称、描述、触发词加入系统提示,让 LLM 自主判断何时使用
- **Sandbox 工作目录改为 `.`**: 避免文件创建在 `/tmp/orca/sandbox` 隔离目录中
## Next Steps
1. 修复 skill 调用机制 - LLM 应直接使用 skill 描述中的专业知识回答问题,而非用工具查找 skill 文件
2. 考虑将 skill 的 body/markdown 内容也注入到对话中,或作为上下文参考
3. 测试具体 skill 触发(如 ui-ux-pro-max 响应"设计网站"类请求)
4. 提交更改到 git dev 分支
5. 推送代码到远程仓库 (需要 GitHub 认证)
## Critical Context
- `~/.agents/skills` 下有 8 个已加载 skills: dev-browser, find-skills, md2pdf, project-memory, shadcn, skill-creator, ui-ux-pro-max, weapp-tailwindcss-guide
- 1 个 skill 加载错误: art-design-pro (缺少 frontmatter 中的 'name')
- DeepSeek API key: `sk-2f1049148e06492dbc304ba49c81c321` (已嵌入默认配置)
- 系统提示中 tools 和 skills 信息同时存在LLM 可能混淆使用方式
- 当前测试中 LLM 用 exec 工具查找 skill 目录,说明 skill 调用指导不够明确
## File Operations
### Read
- `/Users/wang/agent_dev/orca.ai/cmd/orca/main.go`
- `/Users/wang/agent_dev/orca.ai/internal/config/config.go`
- `/Users/wang/agent_dev/orca.ai/internal/config/config_test.go`
- `/Users/wang/agent_dev/orca.ai/pkg/actor/llm_agent.go`
- `/Users/wang/agent_dev/orca.ai/pkg/kernel/kernel.go`
- `/Users/wang/agent_dev/orca.ai/pkg/llm/deepseek.go`
- `/Users/wang/agent_dev/orca.ai/pkg/llm/llm.go`
- `/Users/wang/agent_dev/orca.ai/pkg/llm/types.go`
- `/Users/wang/agent_dev/orca.ai/pkg/sandbox/process.go`
- `/Users/wang/agent_dev/orca.ai/pkg/sandbox/sandbox.go`
- `/Users/wang/agent_dev/orca.ai/pkg/skill/manager.go`
- `/Users/wang/agent_dev/orca.ai/pkg/skill/skill.go`
- `/Users/wang/agent_dev/orca.ai/pkg/tool/builtin.go`
### Modified
- `/Users/wang/agent_dev/orca.ai/cmd/orca/main.go`
- `/Users/wang/agent_dev/orca.ai/internal/config/config.go`
- `/Users/wang/agent_dev/orca.ai/internal/config/config_test.go`
- `/Users/wang/agent_dev/orca.ai/pkg/actor/llm_agent.go`
- `/Users/wang/agent_dev/orca.ai/pkg/kernel/kernel.go`
- `/Users/wang/agent_dev/orca.ai/pkg/llm/deepseek.go`
- `/Users/wang/agent_dev/orca.ai/pkg/sandbox/process.go`