@archon-claw/cli 0.5.0 → 0.6.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/public/assets/{chat-input-D-F2IIDK.js → chat-input-BNct1ILJ.js} +34 -34
- package/dist/public/assets/{embed-XPDwGdtM.js → embed-D4R7hpA_.js} +1 -1
- package/dist/public/assets/{main-DDb5hJ5F.js → main-C4meEBxF.js} +2 -2
- package/dist/public/embed.html +3 -3
- package/dist/public/index.html +3 -3
- package/dist/server.d.ts +5 -1
- package/dist/server.js +57 -12
- package/package.json +5 -3
- package/dist/scaffold.d.ts +0 -7
- package/dist/scaffold.js +0 -115
- package/dist/templates/agent/model.json +0 -6
- package/dist/templates/agent/system-prompt.md +0 -9
- package/dist/templates/agent/tool-impls/greeting.impl.js +0 -9
- package/dist/templates/agent/tools/greeting.json +0 -14
- package/dist/templates/workspace/.claude/skills/create-agent/SKILL.md +0 -90
- package/dist/templates/workspace/.claude/skills/create-dataset/SKILL.md +0 -57
- package/dist/templates/workspace/.claude/skills/create-eval-case/SKILL.md +0 -159
- package/dist/templates/workspace/.claude/skills/create-eval-judge/SKILL.md +0 -128
- package/dist/templates/workspace/.claude/skills/create-mcp-config/SKILL.md +0 -151
- package/dist/templates/workspace/.claude/skills/create-model-config/SKILL.md +0 -45
- package/dist/templates/workspace/.claude/skills/create-skill/SKILL.md +0 -63
- package/dist/templates/workspace/.claude/skills/create-system-prompt/SKILL.md +0 -168
- package/dist/templates/workspace/.claude/skills/create-tool/SKILL.md +0 -56
- package/dist/templates/workspace/.claude/skills/create-tool-impl/SKILL.md +0 -83
- package/dist/templates/workspace/.claude/skills/create-tool-test/SKILL.md +0 -117
- package/dist/templates/workspace/.claude/skills/create-tool-ui/SKILL.md +0 -218
- package/dist/templates/workspace/README.md +0 -13
- package/dist/templates/workspace/package.json +0 -19
|
@@ -1,159 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: create-eval-case
|
|
3
|
-
description: 创建评估用例文件。当用户需要为 agent 编写 eval case 时使用。
|
|
4
|
-
argument-hint: "[case_name]"
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
在 `agents/my-agent/eval-cases/` 目录下创建评估用例文件。
|
|
8
|
-
|
|
9
|
-
## 规范
|
|
10
|
-
|
|
11
|
-
- 文件名格式:`<name>.eval.json`
|
|
12
|
-
- 必须通过 `packages/cli/src/schemas/eval-case.schema.json` 的校验
|
|
13
|
-
- 通过 `archon-claw eval <agent-dir>` 命令运行
|
|
14
|
-
|
|
15
|
-
## 文件结构
|
|
16
|
-
|
|
17
|
-
```
|
|
18
|
-
agents/<agent-name>/
|
|
19
|
-
├── eval-cases/ # 评估用例
|
|
20
|
-
│ ├── basic.eval.json
|
|
21
|
-
│ └── tool-usage.eval.json
|
|
22
|
-
└── eval-judges/ # Judge 配置(可选)
|
|
23
|
-
├── default.json
|
|
24
|
-
└── strict.json
|
|
25
|
-
```
|
|
26
|
-
|
|
27
|
-
## 三种评估模式
|
|
28
|
-
|
|
29
|
-
### 1. `single` — 单轮评估
|
|
30
|
-
|
|
31
|
-
只有 1 个 user turn,Agent 生成 1 次回复,对最终回复运行断言。
|
|
32
|
-
|
|
33
|
-
```json
|
|
34
|
-
{
|
|
35
|
-
"name": "计算器测试",
|
|
36
|
-
"mode": "single",
|
|
37
|
-
"turns": [
|
|
38
|
-
{ "role": "user", "content": "帮我算一下 15 * 7" }
|
|
39
|
-
],
|
|
40
|
-
"assertions": [
|
|
41
|
-
{ "type": "contains", "value": "105" },
|
|
42
|
-
{ "type": "tool-called", "value": "calculator" }
|
|
43
|
-
]
|
|
44
|
-
}
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
### 2. `injected` — 历史注入模式
|
|
48
|
-
|
|
49
|
-
提供多轮历史,一次性注入上下文,只有最后一个 user turn 触发 LLM 生成。
|
|
50
|
-
|
|
51
|
-
```json
|
|
52
|
-
{
|
|
53
|
-
"name": "上下文理解",
|
|
54
|
-
"mode": "injected",
|
|
55
|
-
"turns": [
|
|
56
|
-
{ "role": "user", "content": "我叫小明" },
|
|
57
|
-
{ "role": "assistant", "content": "你好小明!" },
|
|
58
|
-
{ "role": "user", "content": "我叫什么名字?" }
|
|
59
|
-
],
|
|
60
|
-
"assertions": [
|
|
61
|
-
{ "type": "contains", "value": "小明" }
|
|
62
|
-
]
|
|
63
|
-
}
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
### 3. `sequential` — 多轮对话模式
|
|
67
|
-
|
|
68
|
-
每个 user turn 独立调用 LLM 生成回复,支持每轮独立断言。
|
|
69
|
-
|
|
70
|
-
```json
|
|
71
|
-
{
|
|
72
|
-
"name": "多步计算",
|
|
73
|
-
"mode": "sequential",
|
|
74
|
-
"turns": [
|
|
75
|
-
{
|
|
76
|
-
"role": "user",
|
|
77
|
-
"content": "帮我算 10 + 20",
|
|
78
|
-
"assertions": [{ "type": "contains", "value": "30" }]
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
"role": "user",
|
|
82
|
-
"content": "再乘以 3",
|
|
83
|
-
"assertions": [{ "type": "contains", "value": "90" }]
|
|
84
|
-
}
|
|
85
|
-
],
|
|
86
|
-
"assertions": [{ "type": "contains", "value": "90" }]
|
|
87
|
-
}
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
## 断言类型
|
|
91
|
-
|
|
92
|
-
**文本断言:**
|
|
93
|
-
|
|
94
|
-
| 类型 | 说明 | value 示例 |
|
|
95
|
-
|------|------|-----------|
|
|
96
|
-
| `contains` | 包含文本(不区分大小写) | `"105"` |
|
|
97
|
-
| `not-contains` | 不包含文本 | `"error"` |
|
|
98
|
-
| `regex` | 正则匹配 | `"\\d+\\.\\d+"` |
|
|
99
|
-
| `length-min` | 长度 >= N | `"50"` |
|
|
100
|
-
| `length-max` | 长度 <= N | `"500"` |
|
|
101
|
-
| `json-valid` | 合法 JSON | `""` |
|
|
102
|
-
|
|
103
|
-
**工具断言:**
|
|
104
|
-
|
|
105
|
-
| 类型 | 说明 | value 示例 |
|
|
106
|
-
|------|------|-----------|
|
|
107
|
-
| `tool-called` | 调用了指定工具 | `"calculator"` |
|
|
108
|
-
| `tool-not-called` | 未调用指定工具 | `"search"` |
|
|
109
|
-
| `tool-called-with` | 调用工具且参数匹配 | `{"tool":"calculator","args":{"expression":"15*7"}}` |
|
|
110
|
-
|
|
111
|
-
## Case 可选字段
|
|
112
|
-
|
|
113
|
-
| 字段 | 类型 | 说明 |
|
|
114
|
-
|------|------|------|
|
|
115
|
-
| `expectedOutput` | string | 期望输出描述(给 Judge 参考) |
|
|
116
|
-
| `tags` | string[] | 标签,用于 `--tag` 过滤 |
|
|
117
|
-
| `tools` | string[] | 限制可用工具子集 |
|
|
118
|
-
| `judge` | string | 指定 judge 配置名(如 `"strict"`),默认 `"default"` |
|
|
119
|
-
|
|
120
|
-
## 模板
|
|
121
|
-
|
|
122
|
-
```json
|
|
123
|
-
{
|
|
124
|
-
"$schema": "../../../packages/cli/src/schemas/eval-case.schema.json",
|
|
125
|
-
"name": "测试套件名称",
|
|
126
|
-
"description": "测试说明",
|
|
127
|
-
"cases": [
|
|
128
|
-
{
|
|
129
|
-
"name": "用例名称",
|
|
130
|
-
"mode": "single",
|
|
131
|
-
"turns": [
|
|
132
|
-
{ "role": "user", "content": "用户输入" }
|
|
133
|
-
],
|
|
134
|
-
"assertions": [
|
|
135
|
-
{ "type": "contains", "value": "期望包含的文本" }
|
|
136
|
-
],
|
|
137
|
-
"tags": ["tag1"]
|
|
138
|
-
}
|
|
139
|
-
]
|
|
140
|
-
}
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
## 运行
|
|
144
|
-
|
|
145
|
-
```bash
|
|
146
|
-
archon-claw eval agents/my-agent
|
|
147
|
-
archon-claw eval agents/my-agent --file basic.eval.json
|
|
148
|
-
archon-claw eval agents/my-agent --tag tool-usage
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
## 注意
|
|
152
|
-
|
|
153
|
-
- cases 数组至少包含 1 个用例
|
|
154
|
-
- 每个 case 的 turns 至少有 1 个 turn
|
|
155
|
-
- `injected` 模式最后一个 turn 必须是 `user`
|
|
156
|
-
- `sequential` 模式 turns 中只有 `user` role 的 turn 会触发 LLM 生成
|
|
157
|
-
- `tool-called-with` 的 value 是 JSON 字符串,需要转义
|
|
158
|
-
|
|
159
|
-
请根据用户的需求创建评估用例文件。$ARGUMENTS
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: create-eval-judge
|
|
3
|
-
description: 创建 Judge 评审配置文件。当用户需要配置 LLM 评审规则时使用。
|
|
4
|
-
argument-hint: "[judge_name]"
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
在 `agents/my-agent/eval-judges/` 目录下创建 Judge 评审配置文件。
|
|
8
|
-
|
|
9
|
-
## 规范
|
|
10
|
-
|
|
11
|
-
- 文件名格式:`<name>.json`,如 `default.json`、`strict.json`
|
|
12
|
-
- 必须通过 `packages/cli/src/schemas/eval-judge.schema.json` 的校验
|
|
13
|
-
- 在 eval case 中通过 `"judge": "<name>"` 引用,不指定则使用 `default.json`
|
|
14
|
-
|
|
15
|
-
## 文件结构
|
|
16
|
-
|
|
17
|
-
```
|
|
18
|
-
agents/<agent-name>/
|
|
19
|
-
├── eval-cases/
|
|
20
|
-
│ └── basic.eval.json ← 可设置 "judge": "strict"
|
|
21
|
-
└── eval-judges/
|
|
22
|
-
├── default.json ← 默认 judge
|
|
23
|
-
└── strict.json ← 可选的其他 judge
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
## 维度类型
|
|
27
|
-
|
|
28
|
-
### numeric — 数值评分(默认)
|
|
29
|
-
|
|
30
|
-
按 min-max 范围打分,适合模糊评估:
|
|
31
|
-
|
|
32
|
-
```json
|
|
33
|
-
{ "key": "accuracy", "label": "准确性", "weight": 0.4, "min": 0, "max": 10 }
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
### binary — 二元判定
|
|
37
|
-
|
|
38
|
-
只有 pass/fail(true/false),适合明确标准:
|
|
39
|
-
|
|
40
|
-
```json
|
|
41
|
-
{ "key": "correct", "label": "回答正确", "type": "binary", "weight": 0.5 }
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
二元维度在计算总分时,pass = 10 分,fail = 0 分,参与加权平均。
|
|
45
|
-
|
|
46
|
-
## 模板
|
|
47
|
-
|
|
48
|
-
```json
|
|
49
|
-
{
|
|
50
|
-
"$schema": "../../../packages/cli/src/schemas/eval-judge.schema.json",
|
|
51
|
-
"model": {
|
|
52
|
-
"provider": "bailian",
|
|
53
|
-
"model": "qwen-plus"
|
|
54
|
-
},
|
|
55
|
-
"dimensions": [
|
|
56
|
-
{ "key": "accuracy", "label": "准确性", "weight": 0.4, "min": 0, "max": 10 },
|
|
57
|
-
{ "key": "relevance", "label": "相关性", "weight": 0.3, "min": 0, "max": 10 },
|
|
58
|
-
{ "key": "clarity", "label": "清晰度", "weight": 0.3, "min": 0, "max": 10 }
|
|
59
|
-
]
|
|
60
|
-
}
|
|
61
|
-
```
|
|
62
|
-
|
|
63
|
-
## 混合维度示例
|
|
64
|
-
|
|
65
|
-
数值和二元维度可以混用:
|
|
66
|
-
|
|
67
|
-
```json
|
|
68
|
-
{
|
|
69
|
-
"dimensions": [
|
|
70
|
-
{ "key": "correct", "label": "回答正确", "type": "binary", "weight": 0.5 },
|
|
71
|
-
{ "key": "tool_usage", "label": "工具使用正确", "type": "binary", "weight": 0.3 },
|
|
72
|
-
{ "key": "clarity", "label": "清晰度", "weight": 0.2, "min": 0, "max": 10 }
|
|
73
|
-
]
|
|
74
|
-
}
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
## 自定义 Prompt 模板
|
|
78
|
-
|
|
79
|
-
通过 `promptTemplate` 字段覆盖默认评审提示词,使用 LiquidJS 语法:
|
|
80
|
-
|
|
81
|
-
```json
|
|
82
|
-
{
|
|
83
|
-
"dimensions": [
|
|
84
|
-
{ "key": "correct", "label": "正确", "type": "binary", "weight": 1 }
|
|
85
|
-
],
|
|
86
|
-
"promptTemplate": "判断以下回复是否正确。\n\n问题:{{ user_input }}\n回复:{{ actual_response }}\n\n以 JSON 格式回复:\n{ \"correct\": { \"score\": true/false, \"reason\": \"理由\" } }"
|
|
87
|
-
}
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
### 模板可用变量
|
|
91
|
-
|
|
92
|
-
| 变量 | 说明 |
|
|
93
|
-
|------|------|
|
|
94
|
-
| `user_input` | 用户输入 |
|
|
95
|
-
| `expected_output` | 期望输出(可能为空) |
|
|
96
|
-
| `actual_response` | LLM 实际回复 |
|
|
97
|
-
| `conversation` | 完整对话记录 |
|
|
98
|
-
| `dimensions` | 维度数组(含 key/label/type/min/max) |
|
|
99
|
-
|
|
100
|
-
`turnPromptTemplate` 用于 sequential 模式的每轮评审,可用变量相同。
|
|
101
|
-
|
|
102
|
-
## 可选字段
|
|
103
|
-
|
|
104
|
-
| 字段 | 类型 | 说明 |
|
|
105
|
-
|------|------|------|
|
|
106
|
-
| `model` | object | Judge 使用的模型(不填则用 agent 的 model) |
|
|
107
|
-
| `promptTemplate` | string | 自定义评审提示词模板 |
|
|
108
|
-
| `turnPromptTemplate` | string | sequential 模式每轮评审模板 |
|
|
109
|
-
|
|
110
|
-
## 维度字段
|
|
111
|
-
|
|
112
|
-
| 字段 | 类型 | 必填 | 说明 |
|
|
113
|
-
|------|------|------|------|
|
|
114
|
-
| `key` | string | 是 | 维度标识(用于 JSON 输出) |
|
|
115
|
-
| `label` | string | 是 | 维度显示名 |
|
|
116
|
-
| `weight` | number | 是 | 权重(0-1) |
|
|
117
|
-
| `type` | string | 否 | `"numeric"`(默认)或 `"binary"` |
|
|
118
|
-
| `min` | number | 否 | 最低分(默认 0,仅 numeric) |
|
|
119
|
-
| `max` | number | 否 | 最高分(默认 10,仅 numeric) |
|
|
120
|
-
|
|
121
|
-
## 注意
|
|
122
|
-
|
|
123
|
-
- dimensions 数组至少包含 1 个维度
|
|
124
|
-
- 所有维度的 weight 之和建议为 1(不强制)
|
|
125
|
-
- model 不填时使用 agent 自身的 model 配置
|
|
126
|
-
- LLM 返回的 JSON 中 binary 维度为 `true`/`false`,会自动转换为 1/0
|
|
127
|
-
|
|
128
|
-
请根据用户的需求创建 Judge 配置文件。$ARGUMENTS
|
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: create-mcp-config
|
|
3
|
-
description: 创建或修改 MCP 服务器配置文件。当用户需要连接外部 MCP 服务器、添加 MCP 工具时使用。
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
创建或修改 `agents/my-agent/mcp.json` MCP 服务器配置文件。
|
|
7
|
-
|
|
8
|
-
## 规范
|
|
9
|
-
|
|
10
|
-
- 文件位于 Agent 配置文件夹根目录,文件名固定为 `mcp.json`
|
|
11
|
-
- 该文件是可选的,不存在时 agent 只使用本地工具
|
|
12
|
-
- MCP 工具会自动合并到 agent 的工具列表中,与本地工具无区别
|
|
13
|
-
|
|
14
|
-
## 字段
|
|
15
|
-
|
|
16
|
-
### 顶层
|
|
17
|
-
|
|
18
|
-
| 字段 | 类型 | 必填 | 说明 |
|
|
19
|
-
|------|------|------|------|
|
|
20
|
-
| `mcpServers` | object | 是 | 服务器配置,key 为服务器名称 |
|
|
21
|
-
|
|
22
|
-
### 每个 server 配置
|
|
23
|
-
|
|
24
|
-
| 字段 | 类型 | 必填 | 说明 |
|
|
25
|
-
|------|------|------|------|
|
|
26
|
-
| `command` | string | stdio 时必填 | 可执行命令 |
|
|
27
|
-
| `args` | string[] | 否 | 命令行参数 |
|
|
28
|
-
| `env` | object | 否 | 环境变量,支持 `${VAR}` 引用 process.env |
|
|
29
|
-
| `cwd` | string | 否 | 工作目录 |
|
|
30
|
-
| `url` | string | SSE/HTTP 时必填 | 远程服务器 URL |
|
|
31
|
-
| `headers` | object | 否 | HTTP 请求头 |
|
|
32
|
-
| `transport` | string | 否 | `"stdio"` / `"sse"` / `"streamable-http"`,可自动推断 |
|
|
33
|
-
| `enabled` | boolean | 否 | 设为 `false` 可禁用,默认 `true` |
|
|
34
|
-
| `timeout` | number | 否 | 工具调用超时(毫秒),默认 30000 |
|
|
35
|
-
| `tools` | object | 否 | 工具过滤配置 |
|
|
36
|
-
|
|
37
|
-
### tools 过滤
|
|
38
|
-
|
|
39
|
-
| 字段 | 类型 | 说明 |
|
|
40
|
-
|------|------|------|
|
|
41
|
-
| `include` | string[] | glob 模式白名单,只暴露匹配的工具 |
|
|
42
|
-
| `exclude` | string[] | glob 模式黑名单,隐藏匹配的工具 |
|
|
43
|
-
| `rename` | object | 重命名映射,如 `{"browser_navigate": "goto"}` |
|
|
44
|
-
|
|
45
|
-
## Transport 自动推断
|
|
46
|
-
|
|
47
|
-
- 有 `command` → `stdio`(本地进程通信)
|
|
48
|
-
- 有 `url` → 先尝试 `streamable-http`,失败后自动 fallback 到 `sse`
|
|
49
|
-
- 显式指定 `transport` 可跳过自动推断(如确定只用 SSE 时写 `"transport": "sse"`)
|
|
50
|
-
- `command` 和 `url` 至少提供一个
|
|
51
|
-
|
|
52
|
-
## 工具命名规则
|
|
53
|
-
|
|
54
|
-
- 默认名称格式:`{serverName}__{toolName}`(避免冲突)
|
|
55
|
-
- 通过 `rename` 可自定义名称(不加前缀)
|
|
56
|
-
- 名称会自动规范化为 `^[a-z][a-z0-9_]*$`
|
|
57
|
-
|
|
58
|
-
## 示例
|
|
59
|
-
|
|
60
|
-
### 本地 stdio 服务器
|
|
61
|
-
|
|
62
|
-
```json
|
|
63
|
-
{
|
|
64
|
-
"mcpServers": {
|
|
65
|
-
"playwright": {
|
|
66
|
-
"command": "npx",
|
|
67
|
-
"args": ["@playwright/mcp@latest"],
|
|
68
|
-
"timeout": 60000,
|
|
69
|
-
"tools": {
|
|
70
|
-
"include": ["browser_*"],
|
|
71
|
-
"exclude": ["browser_install"]
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
### 远程服务器(自动协商协议)
|
|
79
|
-
|
|
80
|
-
只需提供 `url`,会先尝试 streamable-http,不支持则自动降级为 SSE:
|
|
81
|
-
|
|
82
|
-
```json
|
|
83
|
-
{
|
|
84
|
-
"mcpServers": {
|
|
85
|
-
"remote_api": {
|
|
86
|
-
"url": "https://my-server.com/mcp",
|
|
87
|
-
"headers": {
|
|
88
|
-
"Authorization": "Bearer ${API_TOKEN}"
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
### 强制指定 SSE
|
|
96
|
-
|
|
97
|
-
如果确定服务器只支持 SSE,可显式指定以跳过 streamable-http 尝试:
|
|
98
|
-
|
|
99
|
-
```json
|
|
100
|
-
{
|
|
101
|
-
"mcpServers": {
|
|
102
|
-
"legacy": {
|
|
103
|
-
"transport": "sse",
|
|
104
|
-
"url": "https://old-server.com/sse"
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
### 多服务器配置
|
|
111
|
-
|
|
112
|
-
```json
|
|
113
|
-
{
|
|
114
|
-
"mcpServers": {
|
|
115
|
-
"filesystem": {
|
|
116
|
-
"command": "npx",
|
|
117
|
-
"args": ["-y", "@modelcontextprotocol/server-filesystem", "/workspace"]
|
|
118
|
-
},
|
|
119
|
-
"github": {
|
|
120
|
-
"command": "npx",
|
|
121
|
-
"args": ["-y", "@modelcontextprotocol/server-github"],
|
|
122
|
-
"env": {
|
|
123
|
-
"GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_TOKEN}"
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
## 在系统提示词中引用 MCP 工具
|
|
131
|
-
|
|
132
|
-
MCP 服务器和工具会自动注入到 `system-prompt.md` 的 Liquid 模板变量 `mcp` 中,可按服务器名称访问:
|
|
133
|
-
|
|
134
|
-
```markdown
|
|
135
|
-
{% for tool in mcp.playwright.tools %}
|
|
136
|
-
- {{ tool.name }}:{{ tool.description }}
|
|
137
|
-
{% endfor %}
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
详见 `/create-system-prompt` 技能中的 `mcp 变量` 部分。
|
|
141
|
-
|
|
142
|
-
## 注意
|
|
143
|
-
|
|
144
|
-
- `command` 和 `url` 至少提供一个,否则校验失败
|
|
145
|
-
- 环境变量中的敏感信息(API Key 等)用 `${VAR}` 引用,不要硬编码
|
|
146
|
-
- 服务器连接失败不会阻止 agent 启动,只会打印警告
|
|
147
|
-
- MCP 工具与本地工具同名时,本地工具优先(MCP 工具被跳过并打印警告)
|
|
148
|
-
- 不要添加未定义的字段(strict 模式)
|
|
149
|
-
- `mcpServers` 的 key(服务器名称)会作为 `mcp.{name}` 暴露给系统提示词模板
|
|
150
|
-
|
|
151
|
-
请根据用户的需求创建或修改 MCP 配置。$ARGUMENTS
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: create-model-config
|
|
3
|
-
description: 创建或修改模型配置文件。当用户需要配置 LLM 模型、修改 model.json 时使用。
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
创建或修改 `agents/my-agent/model.json` 模型配置文件。
|
|
7
|
-
|
|
8
|
-
## 规范
|
|
9
|
-
|
|
10
|
-
- 文件位于 Agent 配置文件夹根目录
|
|
11
|
-
- 必须通过 `src/schemas/model.schema.json` 的校验
|
|
12
|
-
|
|
13
|
-
## 字段
|
|
14
|
-
|
|
15
|
-
| 字段 | 类型 | 必填 | 默认值 | 说明 |
|
|
16
|
-
|------|------|------|--------|------|
|
|
17
|
-
| `provider` | string | 是 | - | `"anthropic"` 或 `"openai"` |
|
|
18
|
-
| `model` | string | 是 | - | 模型 ID |
|
|
19
|
-
| `maxTokens` | number | 否 | 4096 | 最大输出 token 数 |
|
|
20
|
-
| `temperature` | number | 否 | 0.7 | 采样温度,0~2 |
|
|
21
|
-
| `apiKey` | string | 否 | - | API Key,优先用环境变量 |
|
|
22
|
-
|
|
23
|
-
## 常用模型 ID
|
|
24
|
-
|
|
25
|
-
Anthropic: `claude-sonnet-4-20250514`、`claude-opus-4-20250514`、`claude-haiku-4-5-20251001`
|
|
26
|
-
OpenAI: `gpt-4o`、`gpt-4o-mini`
|
|
27
|
-
|
|
28
|
-
## 示例
|
|
29
|
-
|
|
30
|
-
```json
|
|
31
|
-
{
|
|
32
|
-
"provider": "anthropic",
|
|
33
|
-
"model": "claude-sonnet-4-20250514",
|
|
34
|
-
"maxTokens": 4096,
|
|
35
|
-
"temperature": 0.7
|
|
36
|
-
}
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
## 注意
|
|
40
|
-
|
|
41
|
-
- `provider` 和 `model` 必填
|
|
42
|
-
- `apiKey` 建议不写在文件里,用环境变量(`ANTHROPIC_API_KEY` / `OPENAI_API_KEY`)
|
|
43
|
-
- 不要添加未定义的字段(`additionalProperties: false`)
|
|
44
|
-
|
|
45
|
-
请根据用户的需求创建或修改模型配置。$ARGUMENTS
|
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: create-skill
|
|
3
|
-
description: 创建 agent skill 技能。当用户需要为 agent 添加新的技能(如代码审查、解释代码等)时使用。
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
在 `agents/my-agent/skills/` 目录下创建一个新的技能。
|
|
7
|
-
|
|
8
|
-
## 规范
|
|
9
|
-
|
|
10
|
-
- 创建 `skills/<skill-name>/SKILL.md` 文件
|
|
11
|
-
- 必须通过 `src/schemas/agent-skill.schema.json` 的校验
|
|
12
|
-
- frontmatter 必须包含 `name` 和 `description`
|
|
13
|
-
- body 不能为空
|
|
14
|
-
|
|
15
|
-
## 文件结构
|
|
16
|
-
|
|
17
|
-
```
|
|
18
|
-
skills/
|
|
19
|
-
└── <skill-name>/
|
|
20
|
-
└── SKILL.md
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
## 格式
|
|
24
|
-
|
|
25
|
-
```markdown
|
|
26
|
-
---
|
|
27
|
-
name: skill-name
|
|
28
|
-
description: 技能描述,说明什么场景下使用
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
技能的具体指令内容...
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
## frontmatter 字段
|
|
35
|
-
|
|
36
|
-
| 字段 | 类型 | 必填 | 说明 |
|
|
37
|
-
|------|------|------|------|
|
|
38
|
-
| `name` | string | 是 | 技能名称 |
|
|
39
|
-
| `description` | string | 是 | 技能用途描述 |
|
|
40
|
-
|
|
41
|
-
## 示例
|
|
42
|
-
|
|
43
|
-
```markdown
|
|
44
|
-
---
|
|
45
|
-
name: code-review
|
|
46
|
-
description: 对代码进行 review,检查潜在问题并给出改进建议
|
|
47
|
-
---
|
|
48
|
-
|
|
49
|
-
对用户提供的代码进行审查,关注以下方面:
|
|
50
|
-
|
|
51
|
-
1. **正确性**:逻辑是否正确
|
|
52
|
-
2. **安全性**:是否有安全隐患
|
|
53
|
-
3. **性能**:是否有明显的性能问题
|
|
54
|
-
4. **可读性**:命名是否清晰
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
## 注意
|
|
58
|
-
|
|
59
|
-
- `name` 和 `description` 都是必填的
|
|
60
|
-
- body 内容是技能的具体指令,不能为空
|
|
61
|
-
- 不要添加 `name` 和 `description` 以外的 frontmatter 字段
|
|
62
|
-
|
|
63
|
-
请根据用户需求创建技能。$ARGUMENTS
|