persona-core 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/db/client.d.ts +55 -0
- package/dist/db/client.d.ts.map +1 -0
- package/dist/db/client.js +157 -0
- package/dist/db/client.js.map +1 -0
- package/dist/db/index.d.ts +7 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/index.js +7 -0
- package/dist/db/index.js.map +1 -0
- package/dist/db/repositories/executionRepository.d.ts +15 -0
- package/dist/db/repositories/executionRepository.d.ts.map +1 -0
- package/dist/db/repositories/executionRepository.js +41 -0
- package/dist/db/repositories/executionRepository.js.map +1 -0
- package/dist/db/repositories/index.d.ts +10 -0
- package/dist/db/repositories/index.d.ts.map +1 -0
- package/dist/db/repositories/index.js +10 -0
- package/dist/db/repositories/index.js.map +1 -0
- package/dist/db/repositories/nodeRepository.d.ts +15 -0
- package/dist/db/repositories/nodeRepository.d.ts.map +1 -0
- package/dist/db/repositories/nodeRepository.js +61 -0
- package/dist/db/repositories/nodeRepository.js.map +1 -0
- package/dist/db/repositories/personaRepository.d.ts +13 -0
- package/dist/db/repositories/personaRepository.d.ts.map +1 -0
- package/dist/db/repositories/personaRepository.js +42 -0
- package/dist/db/repositories/personaRepository.js.map +1 -0
- package/dist/db/repositories/planResultRepository.d.ts +13 -0
- package/dist/db/repositories/planResultRepository.d.ts.map +1 -0
- package/dist/db/repositories/planResultRepository.js +30 -0
- package/dist/db/repositories/planResultRepository.js.map +1 -0
- package/dist/db/repositories/scheduleRepository.d.ts +27 -0
- package/dist/db/repositories/scheduleRepository.d.ts.map +1 -0
- package/dist/db/repositories/scheduleRepository.js +187 -0
- package/dist/db/repositories/scheduleRepository.js.map +1 -0
- package/dist/db/repositories/types.d.ts +132 -0
- package/dist/db/repositories/types.d.ts.map +1 -0
- package/dist/db/repositories/types.js +5 -0
- package/dist/db/repositories/types.js.map +1 -0
- package/dist/db/schema.d.ts +742 -0
- package/dist/db/schema.d.ts.map +1 -0
- package/dist/db/schema.js +85 -0
- package/dist/db/schema.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +16 -0
- package/dist/index.js.map +1 -0
- package/dist/llm/capabilities.d.ts +56 -0
- package/dist/llm/capabilities.d.ts.map +1 -0
- package/dist/llm/capabilities.js +305 -0
- package/dist/llm/capabilities.js.map +1 -0
- package/dist/llm/index.d.ts +7 -0
- package/dist/llm/index.d.ts.map +1 -0
- package/dist/llm/index.js +10 -0
- package/dist/llm/index.js.map +1 -0
- package/dist/llm/interfaces.d.ts +249 -0
- package/dist/llm/interfaces.d.ts.map +1 -0
- package/dist/llm/interfaces.js +5 -0
- package/dist/llm/interfaces.js.map +1 -0
- package/dist/llm/providers/anthropic-compatible.d.ts +48 -0
- package/dist/llm/providers/anthropic-compatible.d.ts.map +1 -0
- package/dist/llm/providers/anthropic-compatible.js +163 -0
- package/dist/llm/providers/anthropic-compatible.js.map +1 -0
- package/dist/llm/providers/index.d.ts +14 -0
- package/dist/llm/providers/index.d.ts.map +1 -0
- package/dist/llm/providers/index.js +12 -0
- package/dist/llm/providers/index.js.map +1 -0
- package/dist/llm/providers/openai-compatible.d.ts +59 -0
- package/dist/llm/providers/openai-compatible.d.ts.map +1 -0
- package/dist/llm/providers/openai-compatible.js +207 -0
- package/dist/llm/providers/openai-compatible.js.map +1 -0
- package/dist/services/actionService.d.ts +132 -0
- package/dist/services/actionService.d.ts.map +1 -0
- package/dist/services/actionService.js +971 -0
- package/dist/services/actionService.js.map +1 -0
- package/dist/services/branchService.d.ts +19 -0
- package/dist/services/branchService.d.ts.map +1 -0
- package/dist/services/branchService.js +50 -0
- package/dist/services/branchService.js.map +1 -0
- package/dist/services/expressionEvaluator.d.ts +16 -0
- package/dist/services/expressionEvaluator.d.ts.map +1 -0
- package/dist/services/expressionEvaluator.js +70 -0
- package/dist/services/expressionEvaluator.js.map +1 -0
- package/dist/services/factory.d.ts +43 -0
- package/dist/services/factory.d.ts.map +1 -0
- package/dist/services/factory.js +30 -0
- package/dist/services/factory.js.map +1 -0
- package/dist/services/index.d.ts +15 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +17 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/interfaces.d.ts +117 -0
- package/dist/services/interfaces.d.ts.map +1 -0
- package/dist/services/interfaces.js +5 -0
- package/dist/services/interfaces.js.map +1 -0
- package/dist/services/loaders/fileLoader.d.ts +56 -0
- package/dist/services/loaders/fileLoader.d.ts.map +1 -0
- package/dist/services/loaders/fileLoader.js +161 -0
- package/dist/services/loaders/fileLoader.js.map +1 -0
- package/dist/services/loaders/index.d.ts +6 -0
- package/dist/services/loaders/index.d.ts.map +1 -0
- package/dist/services/loaders/index.js +6 -0
- package/dist/services/loaders/index.js.map +1 -0
- package/dist/services/loaders/transformers.d.ts +32 -0
- package/dist/services/loaders/transformers.d.ts.map +1 -0
- package/dist/services/loaders/transformers.js +78 -0
- package/dist/services/loaders/transformers.js.map +1 -0
- package/dist/services/mockAction.d.ts +65 -0
- package/dist/services/mockAction.d.ts.map +1 -0
- package/dist/services/mockAction.js +153 -0
- package/dist/services/mockAction.js.map +1 -0
- package/dist/services/mockBranch.d.ts +50 -0
- package/dist/services/mockBranch.d.ts.map +1 -0
- package/dist/services/mockBranch.js +75 -0
- package/dist/services/mockBranch.js.map +1 -0
- package/dist/services/mockThinking.d.ts +68 -0
- package/dist/services/mockThinking.d.ts.map +1 -0
- package/dist/services/mockThinking.js +89 -0
- package/dist/services/mockThinking.js.map +1 -0
- package/dist/services/thinkingService.d.ts +15 -0
- package/dist/services/thinkingService.d.ts.map +1 -0
- package/dist/services/thinkingService.js +117 -0
- package/dist/services/thinkingService.js.map +1 -0
- package/dist/temporal/activities/actionActivities.d.ts +15 -0
- package/dist/temporal/activities/actionActivities.d.ts.map +1 -0
- package/dist/temporal/activities/actionActivities.js +140 -0
- package/dist/temporal/activities/actionActivities.js.map +1 -0
- package/dist/temporal/activities/branchActivities.d.ts +13 -0
- package/dist/temporal/activities/branchActivities.d.ts.map +1 -0
- package/dist/temporal/activities/branchActivities.js +26 -0
- package/dist/temporal/activities/branchActivities.js.map +1 -0
- package/dist/temporal/activities/dbActivities.d.ts +14 -0
- package/dist/temporal/activities/dbActivities.d.ts.map +1 -0
- package/dist/temporal/activities/dbActivities.js +84 -0
- package/dist/temporal/activities/dbActivities.js.map +1 -0
- package/dist/temporal/activities/index.d.ts +9 -0
- package/dist/temporal/activities/index.d.ts.map +1 -0
- package/dist/temporal/activities/index.js +9 -0
- package/dist/temporal/activities/index.js.map +1 -0
- package/dist/temporal/activities/thinkingActivities.d.ts +17 -0
- package/dist/temporal/activities/thinkingActivities.d.ts.map +1 -0
- package/dist/temporal/activities/thinkingActivities.js +145 -0
- package/dist/temporal/activities/thinkingActivities.js.map +1 -0
- package/dist/temporal/activities/types.d.ts +100 -0
- package/dist/temporal/activities/types.d.ts.map +1 -0
- package/dist/temporal/activities/types.js +5 -0
- package/dist/temporal/activities/types.js.map +1 -0
- package/dist/temporal/client.d.ts +43 -0
- package/dist/temporal/client.d.ts.map +1 -0
- package/dist/temporal/client.js +75 -0
- package/dist/temporal/client.js.map +1 -0
- package/dist/temporal/index.d.ts +10 -0
- package/dist/temporal/index.d.ts.map +1 -0
- package/dist/temporal/index.js +12 -0
- package/dist/temporal/index.js.map +1 -0
- package/dist/temporal/personaCoreClient.d.ts +199 -0
- package/dist/temporal/personaCoreClient.d.ts.map +1 -0
- package/dist/temporal/personaCoreClient.js +233 -0
- package/dist/temporal/personaCoreClient.js.map +1 -0
- package/dist/temporal/personaWorker.d.ts +141 -0
- package/dist/temporal/personaWorker.d.ts.map +1 -0
- package/dist/temporal/personaWorker.js +93 -0
- package/dist/temporal/personaWorker.js.map +1 -0
- package/dist/temporal/worker.d.ts +66 -0
- package/dist/temporal/worker.d.ts.map +1 -0
- package/dist/temporal/worker.js +109 -0
- package/dist/temporal/worker.js.map +1 -0
- package/dist/temporal/workflows/index.d.ts +5 -0
- package/dist/temporal/workflows/index.d.ts.map +1 -0
- package/dist/temporal/workflows/index.js +5 -0
- package/dist/temporal/workflows/index.js.map +1 -0
- package/dist/temporal/workflows/scheduleWorkflow.d.ts +31 -0
- package/dist/temporal/workflows/scheduleWorkflow.d.ts.map +1 -0
- package/dist/temporal/workflows/scheduleWorkflow.js +256 -0
- package/dist/temporal/workflows/scheduleWorkflow.js.map +1 -0
- package/dist/types/common.d.ts +81 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/common.js +5 -0
- package/dist/types/common.js.map +1 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +12 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/nodes.d.ts +496 -0
- package/dist/types/nodes.d.ts.map +1 -0
- package/dist/types/nodes.js +5 -0
- package/dist/types/nodes.js.map +1 -0
- package/dist/types/persona.d.ts +59 -0
- package/dist/types/persona.d.ts.map +1 -0
- package/dist/types/persona.js +36 -0
- package/dist/types/persona.js.map +1 -0
- package/dist/types/schedule.d.ts +143 -0
- package/dist/types/schedule.d.ts.map +1 -0
- package/dist/types/schedule.js +155 -0
- package/dist/types/schedule.js.map +1 -0
- package/dist/utils/dateUtils.d.ts +31 -0
- package/dist/utils/dateUtils.d.ts.map +1 -0
- package/dist/utils/dateUtils.js +53 -0
- package/dist/utils/dateUtils.js.map +1 -0
- package/dist/utils/index.d.ts +8 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +8 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/inputResolver.d.ts +43 -0
- package/dist/utils/inputResolver.d.ts.map +1 -0
- package/dist/utils/inputResolver.js +137 -0
- package/dist/utils/inputResolver.js.map +1 -0
- package/dist/utils/sharedDataUtils.d.ts +36 -0
- package/dist/utils/sharedDataUtils.d.ts.map +1 -0
- package/dist/utils/sharedDataUtils.js +84 -0
- package/dist/utils/sharedDataUtils.js.map +1 -0
- package/dist/utils/typeGuards.d.ts +33 -0
- package/dist/utils/typeGuards.d.ts.map +1 -0
- package/dist/utils/typeGuards.js +50 -0
- package/dist/utils/typeGuards.js.map +1 -0
- package/docs/add-llm-provider.md +353 -0
- package/docs/external/deepseek-v32.md +28 -0
- package/docs/quick-start.md +849 -0
- package/docs/suite-guide.md +148 -0
- package/docs/usage-guide.md +1487 -0
- package/package.json +80 -0
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# Suite 开发指南
|
|
2
|
+
|
|
3
|
+
本文档介绍如何创建一个新的 Persona Suite。
|
|
4
|
+
|
|
5
|
+
## 什么是 Suite
|
|
6
|
+
|
|
7
|
+
Suite 是一个预配置的 Persona 执行包,包含:
|
|
8
|
+
- 一个定义好的 Persona(角色人格 + 可用动作)
|
|
9
|
+
- 一个主程序脚本,接收任务提示并执行 Schedule
|
|
10
|
+
|
|
11
|
+
## 目录结构
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
suites/
|
|
15
|
+
└── <suite_name>/
|
|
16
|
+
├── persona.ts # Persona 定义
|
|
17
|
+
├── index.ts # 主程序(导出 run 函数)
|
|
18
|
+
├── keys.json # 外部服务鉴权密钥(可选,已被 gitignore)
|
|
19
|
+
└── output/ # 执行结果输出目录(可选)
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## 创建步骤
|
|
23
|
+
|
|
24
|
+
### 1. 创建 Suite 目录
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
mkdir -p suites/<your_suite_name>
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### 2. 定义 Persona (`persona.ts`)
|
|
31
|
+
|
|
32
|
+
需要定义:
|
|
33
|
+
- **actionTypes**: 可用的动作类型列表
|
|
34
|
+
- **humorPersona**: Persona 配置对象
|
|
35
|
+
- `id`: 唯一标识
|
|
36
|
+
- `name`: 名称
|
|
37
|
+
- `description`: 描述
|
|
38
|
+
- `systemPrompt`: 系统提示词(指导 LLM 如何规划任务)
|
|
39
|
+
- `actionTypes`: 引用上面定义的动作列表
|
|
40
|
+
|
|
41
|
+
参考 `suites/humor/persona.ts` 的实现。
|
|
42
|
+
|
|
43
|
+
### 3. 编写主程序 (`index.ts`)
|
|
44
|
+
|
|
45
|
+
主程序需要导出一个 `run` 函数:
|
|
46
|
+
|
|
47
|
+
```typescript
|
|
48
|
+
export async function run(thinkingPrompt: string): Promise<void>
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
主要流程:
|
|
52
|
+
1. 设置内存数据库(PGlite)
|
|
53
|
+
2. 创建 Persona 到数据库
|
|
54
|
+
3. 设置 Temporal 测试环境
|
|
55
|
+
4. 创建 LLM Provider 和服务
|
|
56
|
+
5. 创建并启动 Worker
|
|
57
|
+
6. 创建初始 Schedule(包含入口思考节点)
|
|
58
|
+
7. 启动 Workflow 并等待完成
|
|
59
|
+
8. 获取并输出结果
|
|
60
|
+
9. 清理资源
|
|
61
|
+
|
|
62
|
+
参考 `suites/humor/index.ts` 的实现。
|
|
63
|
+
|
|
64
|
+
### 4. 创建输出目录(可选)
|
|
65
|
+
|
|
66
|
+
如果 Persona 包含 `file_write` 类型的动作,需要创建输出目录:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
mkdir -p suites/<your_suite_name>/output
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## 动作类型定义
|
|
73
|
+
|
|
74
|
+
每个动作类型需要指定:
|
|
75
|
+
|
|
76
|
+
| 字段 | 说明 |
|
|
77
|
+
|------|------|
|
|
78
|
+
| `id` | 动作唯一标识,LLM 规划时使用 |
|
|
79
|
+
| `name` | 动作名称 |
|
|
80
|
+
| `description` | 动作描述,帮助 LLM 理解用途 |
|
|
81
|
+
| `executionType` | 执行类型:`llm_call`、`file_write`、`api_call` 等 |
|
|
82
|
+
| `inputFields` | 输入字段定义(name、required、typeHint、description) |
|
|
83
|
+
| `outputFields` | 输出字段定义 |
|
|
84
|
+
|
|
85
|
+
## System Prompt 编写建议
|
|
86
|
+
|
|
87
|
+
System Prompt 应该明确指导 LLM 如何规划任务:
|
|
88
|
+
|
|
89
|
+
1. **描述角色特点**:让 LLM 理解应该扮演什么角色
|
|
90
|
+
2. **规划步骤**:说明应该如何分解任务
|
|
91
|
+
3. **输入输出配置**:如果需要在动作间传递数据,说明如何配置:
|
|
92
|
+
- `inputs` 使用 `fixed`(固定值)或 `reference`(引用共享数据)
|
|
93
|
+
- `outputMappings` 将动作输出保存到共享数据
|
|
94
|
+
|
|
95
|
+
## 运行 Suite
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
# 列出所有可用 suites
|
|
99
|
+
npm run suite
|
|
100
|
+
|
|
101
|
+
# 运行指定 suite
|
|
102
|
+
npm run suite -- <suite_name> "<thinking_prompt>"
|
|
103
|
+
|
|
104
|
+
# 示例
|
|
105
|
+
npm run suite -- humor "我今天心情不好,需要安慰"
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
## 环境变量
|
|
109
|
+
|
|
110
|
+
运行前需要配置 `.env` 文件:
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
LLM_KEY=your_api_key
|
|
114
|
+
LLM_URL=https://your.llm.endpoint # 可选
|
|
115
|
+
LLM_MODEL=model_name # 可选
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## 外部服务密钥管理
|
|
119
|
+
|
|
120
|
+
如果 Suite 需要调用外部服务(如第三方 API),应将鉴权密钥放在 `keys.json` 文件中:
|
|
121
|
+
|
|
122
|
+
```json
|
|
123
|
+
{
|
|
124
|
+
"twitter_api_key": "your_twitter_key",
|
|
125
|
+
"openai_key": "your_openai_key"
|
|
126
|
+
}
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
然后在代码中引用:
|
|
130
|
+
|
|
131
|
+
```typescript
|
|
132
|
+
import keys from './keys.json' assert { type: 'json' };
|
|
133
|
+
|
|
134
|
+
// 使用密钥
|
|
135
|
+
const apiKey = keys.twitter_api_key;
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
> **安全提示**:`suites/*/keys.json` 已被添加到 `.gitignore`,不会被提交到 Git 仓库。请确保不要将密钥硬编码在代码中。
|
|
139
|
+
|
|
140
|
+
## 调试
|
|
141
|
+
|
|
142
|
+
主程序会自动将执行结果保存到 `output/result-{timestamp}.json`,包含:
|
|
143
|
+
- Schedule 状态和共享数据
|
|
144
|
+
- 所有节点信息
|
|
145
|
+
- 执行历史记录
|
|
146
|
+
|
|
147
|
+
可以通过这个文件排查 LLM 规划和执行问题。
|
|
148
|
+
|