Skip to content

feat: 引擎重构 Phase 1+2 — 轻量化内核 + 插件系统#1

Open
ricky-theseus wants to merge 3 commits into
mainfrom
feat/engine-core
Open

feat: 引擎重构 Phase 1+2 — 轻量化内核 + 插件系统#1
ricky-theseus wants to merge 3 commits into
mainfrom
feat/engine-core

Conversation

@ricky-theseus

Copy link
Copy Markdown
Owner

概述

将 DaisyCode 重构为轻量化内核 + 可无限扩展插件的 Agent 架构。

新增文件

引擎内核 (src/engine/) — 10 个文件,零新依赖

文件 功能
types.ts 基础共享类型 (Message/ToolCall/AgentEvent)
tool.ts Tool 接口 + ToolRegistry (动态注册/卸载)
permission.ts PermissionSystem (Rule + 通配符匹配 + 多层合并)
provider.ts ModelAdapter 接口 + ProviderRegistry
agent.ts 7 个内置 Agent + AgentService
session.ts Session 管理 (tokens/cost/time)
skill.ts Skills 系统 (被动加载 + 3种来源)
plugin.ts Plugin 引擎 (Hook系统 + 服务注册)
agent-loop.ts Agent Loop 增强 (Hook/step/skills注入)
index.ts 统一导出

内置插件 (src/plugins/) — 5 个

插件 功能
tools/ read/edit/write/glob/grep/bash
providers/ deepseek/openai
orchestrator.ts 子Agent编排 (task tool)
mcp.ts MCP 协议
memory.ts 跨会话记忆

架构

\
src/engine/ ← 内核 (Agent Loop + Plugin引擎 + 权限 + Agent + 会话 + Skills)
src/plugins/ ← 扩展 (工具/Provider/MCP/Orchestrator/Memory 全插件化)
src/types.ts ← 向后兼容 (re-export from engine)
\\

验证

  • tsc --noEmit 零错误
  • 113/113 测试通过
  • 向后兼容 (src/types.ts re-export)

创建 src/engine/ 目录,包含 9 个核心模块:

- types.ts — 基础共享类型 (Message/ToolCall/AgentEvent 等)
- tool.ts — Tool 接口 + ToolRegistry
- permission.ts — PermissionSystem (Rule + 通配符匹配 + 多层合并)
- provider.ts — ModelAdapter 接口 + ProviderRegistry
- agent.ts — AgentInfo 定义 + 7 个内置 Agent + AgentService
- session.ts — Session 管理 + SessionManager
- plugin.ts — Plugin 引擎 (API/Hooks/Load/Trigger)
- skill.ts — Skills 系统 (被动加载 + SkillService)
- index.ts — 统一导出

src/types.ts 改为从 engine/ re-export,保持向后兼容
新增功能 vs 旧 agent-loop.ts:
- Skill 列表自动注入 system prompt
- Plugin Hook 调用点 (chat:before/after, tool:before/after, system:prompt, agent:done)
- 基于 AgentInfo 的步骤限制 (agent.steps)
- 改进的消息截断算法
- 工具执行结果触发 tool:after/tool:error hook
- 完整的 system prompt 构建管道 (agent.system + skills + plugin custom)
创建 5 个内置插件,全部基于 Plugin API:

- src/plugins/tools/ — 内置工具插件 (read/edit/write/glob/grep/bash)
- src/plugins/providers/ — LLM Provider 插件 (deepseek/openai)
- src/plugins/orchestrator.ts — 子 Agent 编排插件 (task tool)
- src/plugins/mcp.ts — MCP 协议插件
- src/plugins/memory.ts — 跨会话记忆插件

引擎修复:
- PluginAPI 新增 registerService
- ToolRegistry 兼容旧 API (unregister/unregisterByPrefix 别名)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant