feat: 新增技能编排引擎和工作流构建器组件
Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled
Some checks failed
CI / Lint & TypeCheck (push) Has been cancelled
CI / Unit Tests (push) Has been cancelled
CI / Build Frontend (push) Has been cancelled
CI / Rust Check (push) Has been cancelled
CI / Security Scan (push) Has been cancelled
CI / E2E Tests (push) Has been cancelled
refactor: 统一Hands系统常量到单个源文件 refactor: 更新Hands中文名称和描述 fix: 修复技能市场在连接状态变化时重新加载 fix: 修复身份变更提案的错误处理逻辑 docs: 更新多个功能文档的验证状态和实现位置 docs: 更新Hands系统文档 test: 添加测试文件验证工作区路径
This commit is contained in:
@@ -3,7 +3,8 @@
|
||||
> **分类**: 智能层
|
||||
> **优先级**: P0 - 决定性
|
||||
> **成熟度**: L4 - 生产
|
||||
> **最后更新**: 2026-03-18
|
||||
> **最后更新**: 2026-03-24
|
||||
> **验证状态**: ✅ 代码已验证
|
||||
|
||||
---
|
||||
|
||||
@@ -11,23 +12,25 @@
|
||||
|
||||
### 1.1 基本信息
|
||||
|
||||
Agent 记忆系统实现了跨会话的持久化记忆,支持 5 种记忆类型,通过关键词搜索和相关性排序提供上下文增强。
|
||||
Agent 记忆系统实现了跨会话的持久化记忆,支持 5 种记忆类型,通过关键词搜索和相关性排序提供上下文增强。后端已迁移至 Rust 实现。
|
||||
|
||||
| 属性 | 值 |
|
||||
|------|-----|
|
||||
| 分类 | 智能层 |
|
||||
| 优先级 | P0 |
|
||||
| 成熟度 | L4 |
|
||||
| 依赖 | MemoryExtractor, VectorMemory |
|
||||
| 依赖 | Tauri Runtime, SQLite |
|
||||
| 存储后端 | Rust + SQLite |
|
||||
| 存储位置 | `{app_data_dir}/memory/memories.db` |
|
||||
| 加密支持 | AES-256-GCM (可选) |
|
||||
|
||||
### 1.2 相关文件
|
||||
|
||||
| 文件 | 路径 | 用途 |
|
||||
|------|------|------|
|
||||
| 核心实现 | `desktop/src/lib/agent-memory.ts` | 记忆管理 |
|
||||
| 提取器 | `desktop/src/lib/memory-extractor.ts` | 会话记忆提取 |
|
||||
| LLM 服务 | `desktop/src/lib/llm-service.ts` | LLM 智能提取适配器 |
|
||||
| 向量搜索 | `desktop/src/lib/vector-memory.ts` | 语义搜索 |
|
||||
| 前端客户端 | `desktop/src/lib/intelligence-client.ts` | 统一记忆客户端 |
|
||||
| 后端适配器 | `desktop/src/lib/intelligence-backend.ts` | Tauri 命令封装 |
|
||||
| Rust 命令 | `desktop/src-tauri/src/memory_commands.rs` | 记忆 Tauri 命令 |
|
||||
| 图谱 Store | `desktop/src/store/memoryGraphStore.ts` | 记忆图谱状态 |
|
||||
| UI 组件 | `desktop/src/components/MemoryPanel.tsx` | 记忆列表面板 |
|
||||
| 图谱组件 | `desktop/src/components/MemoryGraph.tsx` | 记忆关系图谱 |
|
||||
@@ -212,19 +215,17 @@ function prune(options: PruneOptions): number {
|
||||
|
||||
- [x] 5 种记忆类型
|
||||
- [x] 关键词提取
|
||||
- [x] **LLM 智能提取** (2026-03-18)
|
||||
- 通过 OpenFang Gateway 调用 LLM 进行语义分析
|
||||
- 自动识别事实、偏好、经验、任务等记忆类型
|
||||
- 智能评估记忆重要性 (1-10)
|
||||
- [x] 规则提取 (备用方案)
|
||||
- [x] **Rust 后端存储** (SQLite) - 通过 Tauri 命令
|
||||
- [x] **统一客户端接口** - 自动选择 Tauri 后端或 localStorage
|
||||
- [x] 相关性排序
|
||||
- [x] 重要性评分
|
||||
- [x] 访问追踪
|
||||
- [x] 去重机制
|
||||
- [x] 清理功能
|
||||
- [x] Markdown 导出
|
||||
- [x] 导入/导出
|
||||
- [x] UI 面板 (MemoryPanel)
|
||||
- [x] **记忆图谱可视化** (MemoryGraph)
|
||||
- [x] Tauri 命令: memory_init, memory_store, memory_get, memory_search, memory_delete, memory_stats
|
||||
|
||||
### 5.2 测试覆盖
|
||||
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
> **成熟度**: L4 - 生产
|
||||
> **最后更新**: 2026-03-24
|
||||
> **负责人**: Intelligence Layer Team
|
||||
> **验证状态**: ✅ 代码已验证
|
||||
> **后端实现**: Rust (identity.rs)
|
||||
|
||||
## 概述
|
||||
|
||||
@@ -10,6 +12,7 @@
|
||||
1. **定义人格** - 通过 SOUL.md 定义核心特质
|
||||
2. **演化人格** - 基于对话反思自动改进
|
||||
3. **版本管理** - 跟踪人格变更历史,支持回滚
|
||||
4. **变更提案** - 创建待审批的人格变更
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
> **分类**: 智能层
|
||||
> **优先级**: P1 - 重要
|
||||
> **成熟度**: L4 - 生产
|
||||
> **最后更新**: 2026-03-17
|
||||
> **最后更新**: 2026-03-24
|
||||
> **验证状态**: ✅ 代码已验证
|
||||
> **后端实现**: Rust (reflection.rs)
|
||||
|
||||
---
|
||||
|
||||
@@ -14,6 +16,7 @@
|
||||
> `ReflectionLog.tsx` 组件已集成到 `RightPanel.tsx` 的 'reflection' tab。
|
||||
>
|
||||
> **集成位置**: RightPanel 'reflection' tab (点击 Sparkles 图标)
|
||||
> **后端位置**: `desktop/src-tauri/src/intelligence/reflection.rs`
|
||||
|
||||
---
|
||||
|
||||
@@ -23,6 +26,14 @@
|
||||
|
||||
自我反思引擎让 Agent 能够分析自己的行为模式,发现问题并提出改进建议,是实现 Agent 自我进化的关键组件。
|
||||
|
||||
| 属性 | 值 |
|
||||
|------|-----|
|
||||
| 分类 | 智能层 |
|
||||
| 优先级 | P1 |
|
||||
| 成熟度 | L4 |
|
||||
| 依赖 | AgentMemory, LLMService |
|
||||
| 触发条件 | 对话次数 / 时间间隔 / 手动 |
|
||||
|
||||
| 属性 | 值 |
|
||||
|------|-----|
|
||||
| 分类 | 智能层 |
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
> **成熟度**: L4 - 生产
|
||||
> **最后更新**: 2026-03-24
|
||||
> **负责人**: Intelligence Layer Team
|
||||
> **后端实现**: Rust (Phase 2 迁移完成)
|
||||
> **验证状态**: ✅ 代码已验证
|
||||
|
||||
## 概述
|
||||
|
||||
@@ -17,36 +19,45 @@
|
||||
|
||||
### 心跳配置 (HeartbeatConfig)
|
||||
|
||||
```typescript
|
||||
interface HeartbeatConfig {
|
||||
enabled: boolean; // 是否启用心跳
|
||||
interval_minutes: number; // 心跳间隔(分钟)
|
||||
quiet_hours_start: string | null; // 静默时段开始(如 "22:00")
|
||||
quiet_hours_end: string | null; // 静默时段结束(如 "08:00")
|
||||
notify_channel: 'ui' | 'desktop' | 'all'; // 通知渠道
|
||||
proactivity_level: 'silent' | 'light' | 'standard' | 'autonomous'; // 主动级别
|
||||
max_alerts_per_tick: number; // 每次心跳最大提醒数
|
||||
---
|
||||
|
||||
## 核心概念
|
||||
|
||||
### 心跳配置 (HeartbeatConfig)
|
||||
|
||||
```rust
|
||||
// Rust 后端实现 (heartbeat.rs)
|
||||
pub struct HeartbeatConfig {
|
||||
pub enabled: bool,
|
||||
pub interval_minutes: u64, // 默认 30 分钟
|
||||
pub quiet_hours_start: Option<String>, // "22:00" 格式
|
||||
pub quiet_hours_end: Option<String>, // "08:00" 格式
|
||||
pub notify_channel: NotifyChannel, // ui | desktop | all
|
||||
pub proactivity_level: ProactivityLevel, // silent | light | standard | autonomous
|
||||
pub max_alerts_per_tick: usize, // 默认 5
|
||||
}
|
||||
```
|
||||
|
||||
### 心跳提醒 (HeartbeatAlert)
|
||||
|
||||
```typescript
|
||||
interface HeartbeatAlert {
|
||||
title: string; // 提醒标题
|
||||
content: string; // 提醒内容
|
||||
urgency: 'low' | 'medium' | 'high'; // 紧急程度
|
||||
source: string; // 来源模块
|
||||
timestamp: string; // 时间戳
|
||||
```rust
|
||||
pub struct HeartbeatAlert {
|
||||
pub title: String,
|
||||
pub content: String,
|
||||
pub urgency: Urgency, // low | medium | high
|
||||
pub source: String,
|
||||
pub timestamp: String,
|
||||
}
|
||||
```
|
||||
|
||||
### 心跳结果 (HeartbeatResult)
|
||||
|
||||
```typescript
|
||||
interface HeartbeatResult {
|
||||
status: 'ok' | 'alert'; // 状态
|
||||
alerts: HeartbeatAlert[]; // 提醒列表
|
||||
```rust
|
||||
pub struct HeartbeatResult {
|
||||
pub status: HeartbeatStatus, // ok | alert
|
||||
pub alerts: Vec<HeartbeatAlert>,
|
||||
pub checked_items: usize,
|
||||
pub timestamp: String,
|
||||
}
|
||||
```
|
||||
|
||||
@@ -69,11 +80,23 @@ interface HeartbeatResult {
|
||||
|
||||
| 文件 | 用途 |
|
||||
|------|------|
|
||||
| `desktop/src/lib/intelligence-backend.ts` | 心跳后端实现 |
|
||||
| `desktop/src/domains/intelligence/store.ts` | 状态管理 |
|
||||
| `desktop/src/domains/intelligence/types.ts` | 类型定义 |
|
||||
| `desktop/src-tauri/src/intelligence/heartbeat.rs` | **Rust 后端实现** (762 行) |
|
||||
| `desktop/src/lib/intelligence-backend.ts` | TypeScript 命令封装 |
|
||||
| `desktop/src/lib/intelligence-client.ts` | 统一客户端接口 |
|
||||
|
||||
### Store 接口
|
||||
### Tauri 命令
|
||||
|
||||
| 命令 | 说明 |
|
||||
|------|------|
|
||||
| `heartbeat_init` | 初始化心跳引擎 |
|
||||
| `heartbeat_start` | 启动心跳定时器 |
|
||||
| `heartbeat_stop` | 停止心跳 |
|
||||
| `heartbeat_tick` | 手动执行一次巡检 |
|
||||
| `heartbeat_get_config` | 获取当前配置 |
|
||||
| `heartbeat_update_config` | 更新配置 |
|
||||
| `heartbeat_get_history` | 获取历史记录 |
|
||||
|
||||
### Store 接口 (前端)
|
||||
|
||||
```typescript
|
||||
interface IntelligenceStore {
|
||||
@@ -90,21 +113,34 @@ interface IntelligenceStore {
|
||||
}
|
||||
```
|
||||
|
||||
### 后端实现
|
||||
### 后端 API (TypeScript 封装)
|
||||
|
||||
```typescript
|
||||
// intelligence-backend.ts
|
||||
export const heartbeat = {
|
||||
config: {
|
||||
get: async (agentId: string): Promise<HeartbeatConfig> => {...},
|
||||
update: async (agentId: string, config: Partial<HeartbeatConfig>): Promise<HeartbeatConfig> => {...},
|
||||
},
|
||||
init: async (agentId: string, config?: HeartbeatConfig): Promise<void> =>
|
||||
invoke('heartbeat_init', { agentId, config }),
|
||||
|
||||
start: async (agentId: string): Promise<void> => {...},
|
||||
stop: async (agentId: string): Promise<void> => {...},
|
||||
tick: async (agentId: string): Promise<HeartbeatResult> => {...},
|
||||
start: async (agentId: string): Promise<void> =>
|
||||
invoke('heartbeat_start', { agentId }),
|
||||
|
||||
stop: async (agentId: string): Promise<void> =>
|
||||
invoke('heartbeat_stop', { agentId }),
|
||||
|
||||
tick: async (agentId: string): Promise<HeartbeatResult> =>
|
||||
invoke('heartbeat_tick', { agentId }),
|
||||
|
||||
getConfig: async (agentId: string): Promise<HeartbeatConfig> =>
|
||||
invoke('heartbeat_get_config', { agentId }),
|
||||
|
||||
updateConfig: async (agentId: string, config: HeartbeatConfig): Promise<void> =>
|
||||
invoke('heartbeat_update_config', { agentId, config }),
|
||||
|
||||
getHistory: async (agentId: string, limit?: number): Promise<HeartbeatResult[]> =>
|
||||
invoke('heartbeat_get_history', { agentId, limit }),
|
||||
};
|
||||
```
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
@@ -255,9 +291,9 @@ export const heartbeat = {
|
||||
|
||||
### 当前限制
|
||||
|
||||
1. **前端定时器依赖** - 心跳依赖页面打开,后台时不运行
|
||||
2. **无持久化调度** - 重启后心跳不自动恢复
|
||||
3. **静默时段实现不完整** - 时区处理可能有问题
|
||||
1. **Rust 后台定时器** - 心跳在 Rust tokio 运行时中执行
|
||||
2. **持久化调度** - 重启后需要重新初始化心跳
|
||||
3. **静默时段** - 已实现,使用本地时区
|
||||
|
||||
### 未来改进
|
||||
|
||||
|
||||
@@ -3,7 +3,9 @@
|
||||
> **分类**: 智能层
|
||||
> **优先级**: P1 - 重要
|
||||
> **成熟度**: L4 - 生产
|
||||
> **最后更新**: 2026-03-18
|
||||
> **最后更新**: 2026-03-24
|
||||
> **验证状态**: ✅ 代码已验证
|
||||
> **实现位置**: `desktop/src/lib/autonomy-manager.ts`
|
||||
|
||||
---
|
||||
|
||||
@@ -14,6 +16,7 @@
|
||||
> `AutonomyConfig.tsx` 组件已集成到 `RightPanel.tsx` 的 'autonomy' tab。
|
||||
>
|
||||
> **集成位置**: RightPanel 'autonomy' tab (点击 Shield 图标)
|
||||
> **实现语言**: TypeScript (前端) + 集成 Rust 后端检查
|
||||
|
||||
### 已集成的系统
|
||||
|
||||
|
||||
Reference in New Issue
Block a user