feat(agents): Phase 8.4-10.5 built-in plugins, bundled skills, coordinator
This commit is contained in:
192
development-doc/plan/tool-update/phase-t-0-current-state.md
Normal file
192
development-doc/plan/tool-update/phase-t-0-current-state.md
Normal file
@@ -0,0 +1,192 @@
|
||||
# Phase T.0:Tools 现状与目标
|
||||
|
||||
日期:2026-04-04
|
||||
状态:已完成
|
||||
借鉴来源:VCPToolBox Plugin 系统
|
||||
|
||||
---
|
||||
|
||||
## 1. 本阶段目的
|
||||
|
||||
本文件用于统一背景认知,明确:
|
||||
|
||||
- Jarvis 当前工具系统处于什么水平
|
||||
- 主要短板是什么
|
||||
- 为什么要升级
|
||||
- 升级后的目标形态是什么
|
||||
- VCPToolBox 给我们什么启发
|
||||
|
||||
---
|
||||
|
||||
## 2. 当前 Jarvis Tools 架构
|
||||
|
||||
### 2.1 核心流程
|
||||
|
||||
```
|
||||
Agent 决策 → 工具调用 → LLM API → 返回结果
|
||||
```
|
||||
|
||||
### 2.2 当前工具实现
|
||||
|
||||
Jarvis 当前的工具以 LangChain Tools 形式存在:
|
||||
|
||||
```python
|
||||
# agents/tools/
|
||||
├── base.py # 工具基类
|
||||
├── file_tools.py # 文件操作
|
||||
├── search_tools.py # 搜索
|
||||
└── web_tools.py # 网页相关
|
||||
```
|
||||
|
||||
### 2.3 当前工具列表
|
||||
|
||||
| 工具 | 功能 | 实现方式 |
|
||||
|------|------|---------|
|
||||
| `read_file` | 读取文件 | Python |
|
||||
| `write_file` | 写入文件 | Python |
|
||||
| `run_python` | 执行代码 | Python |
|
||||
| `search_knowledge` | 知识库检索 | LangChain |
|
||||
| `search_web` | 联网搜索 | API |
|
||||
|
||||
### 2.4 当前问题
|
||||
|
||||
| 问题 | 影响 |
|
||||
|------|------|
|
||||
| 硬编码工具 | 新增工具需改代码 |
|
||||
| 无 manifest | 无法热插拔 |
|
||||
| 无标准化契约 | 调用格式不统一 |
|
||||
| 无配置分离 | 敏感信息易泄露 |
|
||||
| 无类型安全 | 验证缺失 |
|
||||
| 无权限控制 | 安全隐患 |
|
||||
|
||||
---
|
||||
|
||||
## 3. VCPToolBox 工具系统分析
|
||||
|
||||
### 3.1 六大插件类型
|
||||
|
||||
```javascript
|
||||
const PLUGIN_TYPES = {
|
||||
static: "静态占位符,自动注入系统提示词",
|
||||
synchronous: "同步执行,stdio 协议",
|
||||
asynchronous: "异步执行,后台处理",
|
||||
service: "持续运行服务",
|
||||
hybridservice: "混合服务(Agent间通讯)",
|
||||
messagePreprocessor: "消息预处理"
|
||||
};
|
||||
```
|
||||
|
||||
### 3.2 Manifest 标准契约
|
||||
|
||||
```javascript
|
||||
{
|
||||
"manifestVersion": "1.0.0",
|
||||
"name": "PluginName",
|
||||
"displayName": "中文显示名",
|
||||
"description": "功能描述",
|
||||
"pluginType": "synchronous",
|
||||
"version": "1.0.0",
|
||||
|
||||
"entryPoint": {
|
||||
"type": "nodejs",
|
||||
"command": "node Plugin.js",
|
||||
"timeout": 300000
|
||||
},
|
||||
|
||||
"communication": {
|
||||
"protocol": "stdio",
|
||||
"timeout": 300000
|
||||
},
|
||||
|
||||
"configSchema": {
|
||||
"API_KEY": {
|
||||
"type": "string",
|
||||
"description": "API 密钥"
|
||||
}
|
||||
},
|
||||
|
||||
"capabilities": {
|
||||
"invocationCommands": [
|
||||
{
|
||||
"commandIdentifier": "CommandName",
|
||||
"description": "详细描述+调用格式示例",
|
||||
"example": "调用示例"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 3.3 核心设计理念
|
||||
|
||||
1. **声明式** - 工具通过 manifest 声明,框架自动发现
|
||||
2. **标准化** - 统一的调用协议(stdio/websocket)
|
||||
3. **可配置** - configSchema 声明配置项
|
||||
4. **可观测** - 调用日志、超时控制
|
||||
5. **安全隔离** - 沙箱执行、权限控制
|
||||
|
||||
### 3.4 关键文件
|
||||
|
||||
| 文件 | 作用 |
|
||||
|------|------|
|
||||
| `Plugin.js` | 插件加载与执行引擎 |
|
||||
| `plugin-manifest.json` | 插件声明契约 |
|
||||
| `config.env` | 插件配置 |
|
||||
| `routes/` | API 路由层 |
|
||||
|
||||
---
|
||||
|
||||
## 4. 目标架构
|
||||
|
||||
```
|
||||
┌─────────────────────────────────────────────────────────────┐
|
||||
│ Tool Manifests │
|
||||
│ - YAML/JSON 声明式定义 │
|
||||
│ - 版本管理 │
|
||||
│ - Schema 验证 │
|
||||
└─────────────────────────┬───────────────────────────────────┘
|
||||
│
|
||||
┌─────────────────────────┴───────────────────────────────────┐
|
||||
│ Tool Registry │
|
||||
│ - 动态发现 │
|
||||
│ - 权限控制 │
|
||||
│ - 调用统计 │
|
||||
└─────────────────────────┬───────────────────────────────────┘
|
||||
│
|
||||
┌─────────────────────────┴───────────────────────────────────┐
|
||||
│ Tool Executor │
|
||||
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
|
||||
│ │ Python RT │ │ JS RT │ │ Native RT │ │
|
||||
│ └─────────────┘ └─────────────┘ └─────────────┘ │
|
||||
└─────────────────────────┬───────────────────────────────────┘
|
||||
│
|
||||
┌─────────────────────────┴───────────────────────────────────┐
|
||||
│ Tool Output │
|
||||
│ - 类型化返回 │
|
||||
│ - 错误处理 │
|
||||
│ - 调用日志 │
|
||||
└─────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. 借鉴点映射
|
||||
|
||||
| VCPToolBox 借鉴点 | Jarvis 实现位置 | 优先级 |
|
||||
|-------------------|---------------|--------|
|
||||
| Manifest 驱动 | `tools/manifests/` | 🟢 高 |
|
||||
| 标准化契约 | `tools/schemas/` | 🟢 高 |
|
||||
| configSchema | `tools/base.py` | 🟢 高 |
|
||||
| 工具注册中心 | `tools/registry.py` | 🟡 中 |
|
||||
| 动态发现 | `tools/discovery.py` | 🟡 中 |
|
||||
| 调用日志 | `tools/logging.py` | 🟡 中 |
|
||||
| 超时控制 | `tools/executor.py` | 🟡 中 |
|
||||
| 多运行时 | `tools/runtime/` | 🟡 中 |
|
||||
|
||||
---
|
||||
|
||||
## 6. 本阶段产出要求
|
||||
|
||||
- [x] 团队对 Jarvis 当前工具系统和目标方向达成一致
|
||||
- [x] VCPToolBox 工具系统借鉴点已映射到具体 Phase
|
||||
- [x] 后续 phase 文档能够在这个认知基础上展开
|
||||
Reference in New Issue
Block a user