- 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
83 lines
4.0 KiB
Markdown
83 lines
4.0 KiB
Markdown
---
|
||
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`
|