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

4.0 KiB
Raw Permalink Blame History

session, updated
session updated
ses_1fd1 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

  • 实现 DeepSeek 客户端 (pkg/llm/deepseek.go) - 支持 Chat 和 Stream API
  • 更新配置系统支持 Provider 字段 (ollama/deepseek)
  • 默认 Provider 改为 DeepSeek默认模型 deepseek-v4-flash
  • 更新 Kernel 根据 Provider 创建对应 LLM 后端
  • 更新 CLI 支持 DeepSeek 环境变量 (DEEPSEEK_API_KEY, DEEPSEEK_MODEL 等)
  • 添加流式输出支持 (streamWriter, streamChat/syncChat)
  • 修复 sandbox 默认工作目录为当前目录 (. 而非 /tmp/orca/sandbox)
  • 修复 skills 加载路径为 ~/.agents/skills
  • main.go 中添加 k.InitPlugins() 调用以加载 skills
  • 在 LLMAgent 中添加 skillManager 字段和 WithSkillManager 选项
  • 将 skill 信息注入系统提示 (buildSystemPrompt)
  • 所有 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