Skip to content

feat: Modular agent runtime architecture — pluggable execution backends (#20)#21

Merged
robscc merged 1 commit intomainfrom
worktree-melodic-hugging-muffin
Mar 19, 2026
Merged

feat: Modular agent runtime architecture — pluggable execution backends (#20)#21
robscc merged 1 commit intomainfrom
worktree-melodic-hugging-muffin

Conversation

@robscc
Copy link
Owner

@robscc robscc commented Mar 19, 2026

Summary

实现模块化 Agent 运行时架构,支持可插拔的执行后端。这是 Phase 6 & 7 的核心成果。

Key Features

  • 标准化运行时接口: BaseSubAgentRuntime 定义了初始化、执行、清理的标准生命周期
  • Internal Runtime: 进程内执行,完全兼容现有 SubAgent 逻辑
  • HTTP Runtime: 基于 RPC 的远程执行,支持分布式部署和负载均衡
  • 运行时注册表: 插件式架构,轻松扩展新的运行时后端
  • 统一调度入口: dispatch_sub_agent 通过 runtime_type 参数选择后端

Architecture

┌─────────────────────────────────────────────────────┐
│              dispatch_sub_agent()                    │
│         (agentpal/tools/builtin.py)                  │
└──────────────────┬──────────────────────────────────┘
                   │
                   ▼
┌─────────────────────────────────────────────────────┐
│              get_runtime(type, config)               │
│         (runtimes/registry.py)                       │
└──────────────────┬──────────────────────────────────┘
                   │
        ┌──────────┴──────────┐
        ▼                     ▼
┌───────────────┐     ┌───────────────┐
│   Internal    │     │     HTTP      │
│   Runtime     │     │   Runtime     │
│  (in-proc)    │     │   (RPC)       │
└───────────────┘     └───────────────┘

Backend Changes

File Description
runtimes/base.py 运行时基类、配置和数据模型
runtimes/internal.py 进程内运行时实现
runtimes/http.py HTTP RPC 运行时实现
runtimes/registry.py 运行时注册表和工厂
services/task_event_bus.py 任务事件总线原型
api/v1/endpoints/tasks.py 任务管理 REST API
tools/builtin.py 重构 dispatch_sub_agent

Frontend Changes

File Description
pages/TasksPage.tsx 增强任务管理和展示
components/TaskArtifactViewer.tsx 任务产物查看器
hooks/useTaskArtifacts.ts 增量拉取任务产物

Testing

✓ 26 unit tests passed
✓ 2 integration tests passed  
✓ Code compiles and imports correctly

Related Issues

  • Closes #XX (如有相关 issue)

Checklist

  • Code follows project style guidelines
  • Self-review completed
  • Tests added/updated
  • Documentation updated (if needed)

🤖 Generated with Claude Code

…ds (#20)

## Summary
实现模块化 Agent 运行时架构,支持可插拔的执行后端:
- 定义标准化的运行时接口(BaseSubAgentRuntime)
- 内置 InternalSubAgentRuntime(进程内执行)和 HTTPSubAgentRuntime(远程 RPC)
- 运行时注册表机制,支持动态扩展
- 集成 dispatch_sub_agent,支持通过 runtime_type 选择后端

## Backend Changes
- **agentpal/runtimes/**: 新增运行时核心模块
  - `base.py`: RuntimeConfig、ExecutionResult、BaseSubAgentRuntime 基类
  - `internal.py`: 进程内运行时,复用现有 SubAgent 逻辑
  - `http.py`: HTTP RPC 运行时,支持分布式部署
  - `registry.py`: 运行时注册表和工厂函数
- **agentpal/services/task_event_bus.py**: 任务事件总线原型
- **agentpal/models/session.py**: 新增 TaskStatus 枚举和 SubAgentTask.meta 字段
- **agentpal/tools/builtin.py**: 重构 dispatch_sub_agent 使用新运行时架构
- **agentpal/api/v1/endpoints/tasks.py**: 新增任务管理 API 端点
- Tests: 添加单元测试和集成测试

## Frontend Changes
- **src/api/index.ts**: 新增任务相关 API 客户端方法
- **src/pages/TasksPage.tsx**: 增强任务页面功能
- **src/pages/SessionsPage.tsx**: 优化会话展示
- **src/components/TaskArtifactViewer.tsx**: 新增任务产物查看组件
- **src/hooks/useTaskArtifacts.ts**: 新增任务产物拉取钩子

## Testing
- 26 个单元测试全部通过 ✓
- 2 个集成测试验证运行时与数据库集成 ✓
- 代码可正确编译导入 ✓

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@robscc robscc merged commit fc38428 into main Mar 19, 2026
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