actoviq-agent-sdk 0.1.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/LICENSE +21 -0
- package/README-zh.md +422 -0
- package/README.md +415 -0
- package/dist/src/config/loadActoviqSettings.d.ts +8 -0
- package/dist/src/config/loadActoviqSettings.d.ts.map +1 -0
- package/dist/src/config/loadActoviqSettings.js +11 -0
- package/dist/src/config/loadActoviqSettings.js.map +1 -0
- package/dist/src/config/loadDefaultActoviqSettings.d.ts +7 -0
- package/dist/src/config/loadDefaultActoviqSettings.d.ts.map +1 -0
- package/dist/src/config/loadDefaultActoviqSettings.js +27 -0
- package/dist/src/config/loadDefaultActoviqSettings.js.map +1 -0
- package/dist/src/config/loadJsonConfigFile.d.ts +8 -0
- package/dist/src/config/loadJsonConfigFile.d.ts.map +1 -0
- package/dist/src/config/loadJsonConfigFile.js +48 -0
- package/dist/src/config/loadJsonConfigFile.js.map +1 -0
- package/dist/src/config/resolveRuntimeConfig.d.ts +3 -0
- package/dist/src/config/resolveRuntimeConfig.d.ts.map +1 -0
- package/dist/src/config/resolveRuntimeConfig.js +64 -0
- package/dist/src/config/resolveRuntimeConfig.js.map +1 -0
- package/dist/src/errors.d.ts +35 -0
- package/dist/src/errors.d.ts.map +1 -0
- package/dist/src/errors.js +40 -0
- package/dist/src/errors.js.map +1 -0
- package/dist/src/index.d.ts +20 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +25 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/mcp/connectionManager.d.ts +14 -0
- package/dist/src/mcp/connectionManager.d.ts.map +1 -0
- package/dist/src/mcp/connectionManager.js +172 -0
- package/dist/src/mcp/connectionManager.js.map +1 -0
- package/dist/src/parity/actoviqBridgeSdk.d.ts +64 -0
- package/dist/src/parity/actoviqBridgeSdk.d.ts.map +1 -0
- package/dist/src/parity/actoviqBridgeSdk.js +841 -0
- package/dist/src/parity/actoviqBridgeSdk.js.map +1 -0
- package/dist/src/parity/actoviqFileTools.d.ts +9 -0
- package/dist/src/parity/actoviqFileTools.d.ts.map +1 -0
- package/dist/src/parity/actoviqFileTools.js +426 -0
- package/dist/src/parity/actoviqFileTools.js.map +1 -0
- package/dist/src/parity/actoviqTranscripts.d.ts +40 -0
- package/dist/src/parity/actoviqTranscripts.d.ts.map +1 -0
- package/dist/src/parity/actoviqTranscripts.js +155 -0
- package/dist/src/parity/actoviqTranscripts.js.map +1 -0
- package/dist/src/parity/portableSessions.d.ts +35 -0
- package/dist/src/parity/portableSessions.d.ts.map +1 -0
- package/dist/src/parity/portableSessions.js +233 -0
- package/dist/src/parity/portableSessions.js.map +1 -0
- package/dist/src/provider/client.d.ts +54 -0
- package/dist/src/provider/client.d.ts.map +1 -0
- package/dist/src/provider/client.js +397 -0
- package/dist/src/provider/client.js.map +1 -0
- package/dist/src/provider/types.d.ts +137 -0
- package/dist/src/provider/types.d.ts.map +1 -0
- package/dist/src/provider/types.js +2 -0
- package/dist/src/provider/types.js.map +1 -0
- package/dist/src/runtime/actoviqModelApi.d.ts +10 -0
- package/dist/src/runtime/actoviqModelApi.d.ts.map +1 -0
- package/dist/src/runtime/actoviqModelApi.js +26 -0
- package/dist/src/runtime/actoviqModelApi.js.map +1 -0
- package/dist/src/runtime/agentClient.d.ts +37 -0
- package/dist/src/runtime/agentClient.d.ts.map +1 -0
- package/dist/src/runtime/agentClient.js +212 -0
- package/dist/src/runtime/agentClient.js.map +1 -0
- package/dist/src/runtime/agentSession.d.ts +32 -0
- package/dist/src/runtime/agentSession.d.ts.map +1 -0
- package/dist/src/runtime/agentSession.js +68 -0
- package/dist/src/runtime/agentSession.js.map +1 -0
- package/dist/src/runtime/asyncQueue.d.ts +23 -0
- package/dist/src/runtime/asyncQueue.d.ts.map +1 -0
- package/dist/src/runtime/asyncQueue.js +87 -0
- package/dist/src/runtime/asyncQueue.js.map +1 -0
- package/dist/src/runtime/conversationEngine.d.ts +26 -0
- package/dist/src/runtime/conversationEngine.d.ts.map +1 -0
- package/dist/src/runtime/conversationEngine.js +234 -0
- package/dist/src/runtime/conversationEngine.js.map +1 -0
- package/dist/src/runtime/helpers.d.ts +10 -0
- package/dist/src/runtime/helpers.d.ts.map +1 -0
- package/dist/src/runtime/helpers.js +44 -0
- package/dist/src/runtime/helpers.js.map +1 -0
- package/dist/src/runtime/messageUtils.d.ts +8 -0
- package/dist/src/runtime/messageUtils.d.ts.map +1 -0
- package/dist/src/runtime/messageUtils.js +79 -0
- package/dist/src/runtime/messageUtils.js.map +1 -0
- package/dist/src/runtime/tools.d.ts +10 -0
- package/dist/src/runtime/tools.d.ts.map +1 -0
- package/dist/src/runtime/tools.js +120 -0
- package/dist/src/runtime/tools.js.map +1 -0
- package/dist/src/storage/sessionStore.d.ts +16 -0
- package/dist/src/storage/sessionStore.d.ts.map +1 -0
- package/dist/src/storage/sessionStore.js +120 -0
- package/dist/src/storage/sessionStore.js.map +1 -0
- package/dist/src/types.d.ts +434 -0
- package/dist/src/types.d.ts.map +1 -0
- package/dist/src/types.js +2 -0
- package/dist/src/types.js.map +1 -0
- package/package.json +68 -0
- package/vendor/actoviq-runtime/cli.js +37 -0
- package/vendor/actoviq-runtime/runtime.bundle.br +0 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 deconbear
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README-zh.md
ADDED
|
@@ -0,0 +1,422 @@
|
|
|
1
|
+
# Actoviq Agent SDK
|
|
2
|
+
|
|
3
|
+
[English](./README.md) | [中文](./README-zh.md)
|
|
4
|
+
|
|
5
|
+
Actoviq Agent SDK 是一个独立的实验性 agent SDK 项目,聚焦多工具、多会话以及 bridge 辅助的 agent 工作流。
|
|
6
|
+
|
|
7
|
+
当前仓库仍处于测试预览版阶段,并且还在持续开发中。API、运行时行为、命名、打包方式以及 parity 覆盖范围后续都可能继续调整。欢迎大家提交 Issue 和 PR。
|
|
8
|
+
|
|
9
|
+
本项目当前以公开预览形式持续迭代开发,接口和运行时能力仍会继续完善。
|
|
10
|
+
|
|
11
|
+
本项目采用 [MIT License](./LICENSE) 开源协议。
|
|
12
|
+
|
|
13
|
+
## 项目亮点
|
|
14
|
+
|
|
15
|
+
- 提供 Node.js / TypeScript agent SDK,包含 `run()`、`stream()`、session、tools 和 MCP 支持
|
|
16
|
+
- 提供 Actoviq Runtime bridge,可复用 built-in tools、skills、subagents 和原生 session/context 行为
|
|
17
|
+
- 在 vendored 非 TUI runtime 之上提供更干净的对外 SDK 表面
|
|
18
|
+
- 提供交互式流式示例,便于本地调试 agent
|
|
19
|
+
- 持续补齐 workspace 管理、更深层 subagent API,以及私有依赖替代
|
|
20
|
+
|
|
21
|
+
## 快速开始
|
|
22
|
+
|
|
23
|
+
### 1. 安装依赖
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npm install
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### 2. 准备 `~/.actoviq/settings.json`
|
|
30
|
+
|
|
31
|
+
本地示例默认读取这个文件:
|
|
32
|
+
|
|
33
|
+
```text
|
|
34
|
+
~/.actoviq/settings.json
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
如果目录还不存在,可以先创建:
|
|
38
|
+
|
|
39
|
+
```powershell
|
|
40
|
+
New-Item -ItemType Directory -Force $HOME\.actoviq | Out-Null
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
### 3. 运行基础示例
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
npm run example:quickstart
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### 4. 启动交互式 agent 示例
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
npm run example:actoviq-interactive-agent
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
它会启动一个带流式输出、工具调用能力和无限循环会话的交互式 REPL,直到你主动退出。
|
|
56
|
+
|
|
57
|
+
## 一眼看懂这个仓库
|
|
58
|
+
|
|
59
|
+
这个仓库现在主要提供两条使用路径:
|
|
60
|
+
|
|
61
|
+
1. 用于业务集成的干净 SDK 层
|
|
62
|
+
2. 用于复用 Actoviq 原生非 TUI agent 行为的 runtime bridge 层
|
|
63
|
+
|
|
64
|
+
当前已经可用的能力包括:
|
|
65
|
+
|
|
66
|
+
- 基于 Zod 的本地工具定义
|
|
67
|
+
- 本地、stdio、streamable HTTP 三类 MCP 接入
|
|
68
|
+
- 持久化 session
|
|
69
|
+
- bridge runtime introspection
|
|
70
|
+
- vendored runtime 文件工具:`Read`、`Write`、`Edit`、`Glob`、`Grep`
|
|
71
|
+
- bridge runtime 的 built-in tools、skills 和 subagents
|
|
72
|
+
|
|
73
|
+
## 作为库安装
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
npm install actoviq-agent-sdk zod
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
## 基础 SDK 示例
|
|
80
|
+
|
|
81
|
+
```ts
|
|
82
|
+
import { z } from 'zod';
|
|
83
|
+
import { createAgentSdk, loadDefaultActoviqSettings, tool } from 'actoviq-agent-sdk';
|
|
84
|
+
|
|
85
|
+
await loadDefaultActoviqSettings();
|
|
86
|
+
const sdk = await createAgentSdk();
|
|
87
|
+
|
|
88
|
+
const addNumbers = tool(
|
|
89
|
+
{
|
|
90
|
+
name: 'add_numbers',
|
|
91
|
+
description: 'Add two numbers together.',
|
|
92
|
+
inputSchema: z.object({
|
|
93
|
+
a: z.number(),
|
|
94
|
+
b: z.number(),
|
|
95
|
+
}),
|
|
96
|
+
},
|
|
97
|
+
async ({ a, b }) => ({ sum: a + b }),
|
|
98
|
+
);
|
|
99
|
+
|
|
100
|
+
const result = await sdk.run('Please use the add_numbers tool to calculate 19 + 23.', {
|
|
101
|
+
tools: [addNumbers],
|
|
102
|
+
systemPrompt: 'Use the provided tools whenever they are relevant.',
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
console.log(result.text);
|
|
106
|
+
await sdk.close();
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
## 核心示例
|
|
110
|
+
|
|
111
|
+
### 多轮会话示例
|
|
112
|
+
|
|
113
|
+
```ts
|
|
114
|
+
import { createAgentSdk, loadDefaultActoviqSettings } from 'actoviq-agent-sdk';
|
|
115
|
+
|
|
116
|
+
await loadDefaultActoviqSettings();
|
|
117
|
+
const sdk = await createAgentSdk();
|
|
118
|
+
const session = await sdk.createSession({ title: 'Demo Session' });
|
|
119
|
+
|
|
120
|
+
await session.send('Remember that my project codename is Sparrow.');
|
|
121
|
+
const reply = await session.send('What is my project codename?');
|
|
122
|
+
|
|
123
|
+
console.log(reply.text);
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
### 循环流式示例
|
|
127
|
+
|
|
128
|
+
```ts
|
|
129
|
+
import { createAgentSdk, loadDefaultActoviqSettings } from 'actoviq-agent-sdk';
|
|
130
|
+
|
|
131
|
+
await loadDefaultActoviqSettings();
|
|
132
|
+
const sdk = await createAgentSdk();
|
|
133
|
+
|
|
134
|
+
const prompts = [
|
|
135
|
+
'Introduce yourself in one concise sentence.',
|
|
136
|
+
'Now summarize the key idea of your previous sentence in one sentence.',
|
|
137
|
+
'Finally, give two short suggestions that would help a developer call this SDK more reliably.',
|
|
138
|
+
];
|
|
139
|
+
|
|
140
|
+
const session = await sdk.createSession({ title: 'Stream Loop Example' });
|
|
141
|
+
|
|
142
|
+
for (const prompt of prompts) {
|
|
143
|
+
const stream = session.stream(prompt);
|
|
144
|
+
|
|
145
|
+
for await (const event of stream) {
|
|
146
|
+
if (event.type === 'response.text.delta') {
|
|
147
|
+
process.stdout.write(event.delta);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
const result = await stream.result;
|
|
152
|
+
console.log('\nfinal:', result.text);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
await sdk.close();
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
## 交互式 Agent 示例
|
|
159
|
+
|
|
160
|
+
仓库中包含一个基于 bridge 的交互式示例,具备:
|
|
161
|
+
|
|
162
|
+
- 流式回答
|
|
163
|
+
- 内置工具访问能力
|
|
164
|
+
- vendored runtime 提供的 skills 和 subagents
|
|
165
|
+
- 可在代码中直接设置工作空间路径
|
|
166
|
+
- 可在代码中直接设置 JSON 配置路径
|
|
167
|
+
- 无限循环,直到用户主动退出
|
|
168
|
+
|
|
169
|
+
启动命令:
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
npm run example:actoviq-interactive-agent
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
主要可调项位于:
|
|
176
|
+
[`examples/actoviq-interactive-agent.ts`](./examples/actoviq-interactive-agent.ts)
|
|
177
|
+
|
|
178
|
+
```ts
|
|
179
|
+
const WORKSPACE_PATH = process.cwd();
|
|
180
|
+
const JSON_CONFIG_PATH = path.resolve(
|
|
181
|
+
process.cwd(),
|
|
182
|
+
'examples',
|
|
183
|
+
'interactive-agent.settings.local.json',
|
|
184
|
+
);
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
仓库中包含:
|
|
188
|
+
|
|
189
|
+
- [`examples/interactive-agent.settings.example.json`](./examples/interactive-agent.settings.example.json):安全模板
|
|
190
|
+
- `examples/interactive-agent.settings.local.json`:仅供本机调试使用的本地配置文件
|
|
191
|
+
|
|
192
|
+
其中本地调试文件已被 git 忽略。
|
|
193
|
+
|
|
194
|
+
## Runtime Bridge
|
|
195
|
+
|
|
196
|
+
你也可以直接通过本 SDK 调起 vendored 的非 TUI Actoviq Runtime。
|
|
197
|
+
这层 bridge 复用了上游 headless CLI,因此会带上内置工具池、skills、subagents,以及原生 session/context 行为。
|
|
198
|
+
|
|
199
|
+
```ts
|
|
200
|
+
import { createActoviqBridgeSdk, loadDefaultActoviqSettings } from 'actoviq-agent-sdk';
|
|
201
|
+
|
|
202
|
+
await loadDefaultActoviqSettings();
|
|
203
|
+
|
|
204
|
+
const sdk = await createActoviqBridgeSdk({
|
|
205
|
+
workDir: process.cwd(),
|
|
206
|
+
maxTurns: 4,
|
|
207
|
+
});
|
|
208
|
+
|
|
209
|
+
const result = await sdk.run(
|
|
210
|
+
'Use Actoviq Runtime tools to inspect the examples directory, then summarize examples/quickstart.ts.',
|
|
211
|
+
);
|
|
212
|
+
|
|
213
|
+
console.log(result.initEvent?.agents);
|
|
214
|
+
console.log(result.initEvent?.skills);
|
|
215
|
+
console.log(result.sessionId);
|
|
216
|
+
console.log(result.text);
|
|
217
|
+
console.log(result.events.length);
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
Bridge 说明:
|
|
221
|
+
|
|
222
|
+
- 它通过 Bun 执行 vendored 的 Actoviq Runtime CLI bundle
|
|
223
|
+
- 会自动注入由 `loadJsonConfigFile(...)` 或 `loadDefaultActoviqSettings()` 加载的环境变量
|
|
224
|
+
- 如果系统里可用 `rg`,bridge 会优先使用系统 `rg`,保证 `Glob` 和 `Grep` 在缺少 bundled ripgrep 二进制时依旧可工作
|
|
225
|
+
|
|
226
|
+
## Runtime Introspection
|
|
227
|
+
|
|
228
|
+
如果你想检查当前 bridge runtime 实际加载了哪些能力,而不是直接让 agent 执行任务,可以使用 introspection 示例。
|
|
229
|
+
|
|
230
|
+
启动命令:
|
|
231
|
+
|
|
232
|
+
```bash
|
|
233
|
+
npm run example:actoviq-introspection
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
它会输出:
|
|
237
|
+
|
|
238
|
+
- 当前运行模型
|
|
239
|
+
- 当前内置工具列表
|
|
240
|
+
- 当前已加载 skills
|
|
241
|
+
- 当前 slash commands
|
|
242
|
+
- 当前可用 agents
|
|
243
|
+
- 当前上下文使用情况
|
|
244
|
+
|
|
245
|
+
## 文件工具
|
|
246
|
+
|
|
247
|
+
你可以把第一阶段的 Actoviq Runtime parity 文件工具直接挂到 SDK 上:
|
|
248
|
+
|
|
249
|
+
```ts
|
|
250
|
+
import {
|
|
251
|
+
createAgentSdk,
|
|
252
|
+
createActoviqFileTools,
|
|
253
|
+
loadDefaultActoviqSettings,
|
|
254
|
+
} from 'actoviq-agent-sdk';
|
|
255
|
+
|
|
256
|
+
await loadDefaultActoviqSettings();
|
|
257
|
+
|
|
258
|
+
const sdk = await createAgentSdk({
|
|
259
|
+
tools: createActoviqFileTools({
|
|
260
|
+
cwd: process.cwd(),
|
|
261
|
+
}),
|
|
262
|
+
});
|
|
263
|
+
|
|
264
|
+
const result = await sdk.run(
|
|
265
|
+
'Use Glob to inspect the examples directory, then use Read on examples/quickstart.ts.',
|
|
266
|
+
);
|
|
267
|
+
|
|
268
|
+
console.log(result.text);
|
|
269
|
+
console.log(result.toolCalls);
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
当前文件工具包括:
|
|
273
|
+
|
|
274
|
+
- `Read`
|
|
275
|
+
- `Write`
|
|
276
|
+
- `Edit`
|
|
277
|
+
- `Glob`
|
|
278
|
+
- `Grep`
|
|
279
|
+
|
|
280
|
+
## 原生 Runtime Sessions
|
|
281
|
+
|
|
282
|
+
你也可以通过 vendored 的 portable session discovery 逻辑读取 Actoviq Runtime 原生 `.actoviq/projects` session 存储。
|
|
283
|
+
|
|
284
|
+
```ts
|
|
285
|
+
import { listActoviqBridgeSessions } from 'actoviq-agent-sdk';
|
|
286
|
+
|
|
287
|
+
const sessions = await listActoviqBridgeSessions({ limit: 10 });
|
|
288
|
+
console.log(sessions);
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
如果你想恢复某个 session 的最近主链对话:
|
|
292
|
+
|
|
293
|
+
```ts
|
|
294
|
+
import {
|
|
295
|
+
getActoviqBridgeSessionInfo,
|
|
296
|
+
getActoviqBridgeSessionMessages,
|
|
297
|
+
} from 'actoviq-agent-sdk';
|
|
298
|
+
|
|
299
|
+
const sessionId = 'your-session-id';
|
|
300
|
+
|
|
301
|
+
const info = await getActoviqBridgeSessionInfo(sessionId);
|
|
302
|
+
const messages = await getActoviqBridgeSessionMessages(sessionId);
|
|
303
|
+
|
|
304
|
+
console.log(info);
|
|
305
|
+
console.log(messages);
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
## 配置说明
|
|
309
|
+
|
|
310
|
+
SDK 会按以下顺序解析配置:
|
|
311
|
+
|
|
312
|
+
1. `createAgentSdk()` 显式传入的参数
|
|
313
|
+
2. `process.env`
|
|
314
|
+
3. 通过 `loadJsonConfigFile(...)` 预加载的 JSON 文件
|
|
315
|
+
|
|
316
|
+
示例:
|
|
317
|
+
|
|
318
|
+
```ts
|
|
319
|
+
import { loadJsonConfigFile } from 'actoviq-agent-sdk';
|
|
320
|
+
|
|
321
|
+
await loadJsonConfigFile('E:/configs/my-llm-config.json');
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
JSON 文件可以写成这两种结构:
|
|
325
|
+
|
|
326
|
+
```json
|
|
327
|
+
{
|
|
328
|
+
"env": {
|
|
329
|
+
"ACTOVIQ_AUTH_TOKEN": "token",
|
|
330
|
+
"ACTOVIQ_BASE_URL": "https://api.example.com/actoviq",
|
|
331
|
+
"ACTOVIQ_DEFAULT_SONNET_MODEL": "my-model"
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
或者:
|
|
337
|
+
|
|
338
|
+
```json
|
|
339
|
+
{
|
|
340
|
+
"ACTOVIQ_AUTH_TOKEN": "token",
|
|
341
|
+
"ACTOVIQ_BASE_URL": "https://api.example.com/actoviq",
|
|
342
|
+
"ACTOVIQ_DEFAULT_SONNET_MODEL": "my-model"
|
|
343
|
+
}
|
|
344
|
+
```
|
|
345
|
+
|
|
346
|
+
支持的键包括:
|
|
347
|
+
|
|
348
|
+
- `ACTOVIQ_API_KEY`
|
|
349
|
+
- `ACTOVIQ_AUTH_TOKEN`
|
|
350
|
+
- `ACTOVIQ_BASE_URL`
|
|
351
|
+
- `ACTOVIQ_MODEL`
|
|
352
|
+
- `ACTOVIQ_DEFAULT_SONNET_MODEL`
|
|
353
|
+
- `ACTOVIQ_DEFAULT_OPUS_MODEL`
|
|
354
|
+
- `ACTOVIQ_DEFAULT_HAIKU_MODEL`
|
|
355
|
+
|
|
356
|
+
为了兼容现有上游 settings 文件,JSON loader 也接受以下上游兼容键名:
|
|
357
|
+
|
|
358
|
+
- `ACTOVIQ_AUTH_TOKEN`
|
|
359
|
+
- `ACTOVIQ_BASE_URL`
|
|
360
|
+
- `ACTOVIQ_DEFAULT_SONNET_MODEL`
|
|
361
|
+
- `ACTOVIQ_DEFAULT_OPUS_MODEL`
|
|
362
|
+
- `ACTOVIQ_DEFAULT_HAIKU_MODEL`
|
|
363
|
+
|
|
364
|
+
本地示例和 smoke 测试也可以直接使用:
|
|
365
|
+
|
|
366
|
+
```ts
|
|
367
|
+
import { loadDefaultActoviqSettings } from 'actoviq-agent-sdk';
|
|
368
|
+
|
|
369
|
+
await loadDefaultActoviqSettings();
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
这个 helper 读取:
|
|
373
|
+
|
|
374
|
+
1. `~/.actoviq/settings.json`
|
|
375
|
+
|
|
376
|
+
## MCP Helper
|
|
377
|
+
|
|
378
|
+
```ts
|
|
379
|
+
import { createAgentSdk, loadDefaultActoviqSettings, stdioMcpServer } from 'actoviq-agent-sdk';
|
|
380
|
+
|
|
381
|
+
await loadDefaultActoviqSettings();
|
|
382
|
+
|
|
383
|
+
const sdk = await createAgentSdk({
|
|
384
|
+
mcpServers: [
|
|
385
|
+
stdioMcpServer({
|
|
386
|
+
name: 'filesystem',
|
|
387
|
+
command: 'npx',
|
|
388
|
+
args: ['-y', '@modelcontextprotocol/server-filesystem', '.'],
|
|
389
|
+
}),
|
|
390
|
+
],
|
|
391
|
+
});
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
## 当前状态与路线图
|
|
395
|
+
|
|
396
|
+
当前项目仍在快速迭代。对外公开的 parity 和后续补齐清单见:
|
|
397
|
+
|
|
398
|
+
- [ACTOVIQ_AGENT_WORKLIST.md](./ACTOVIQ_AGENT_WORKLIST.md)
|
|
399
|
+
|
|
400
|
+
## 本地开发命令
|
|
401
|
+
|
|
402
|
+
```bash
|
|
403
|
+
npm run typecheck
|
|
404
|
+
npm test
|
|
405
|
+
npm run build
|
|
406
|
+
npm run smoke
|
|
407
|
+
npm run example:quickstart
|
|
408
|
+
npm run example:session
|
|
409
|
+
npm run example:stream-loop
|
|
410
|
+
npm run example:actoviq-bridge-sdk
|
|
411
|
+
npm run example:actoviq-interactive-agent
|
|
412
|
+
npm run example:actoviq-introspection
|
|
413
|
+
npm run example:actoviq-file-tools
|
|
414
|
+
npm run example:actoviq-sessions
|
|
415
|
+
npm run example:actoviq-session-messages
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
`npm run smoke` 会读取 `~/.actoviq/settings.json` 并执行一次真实联调验证。
|
|
419
|
+
|
|
420
|
+
## 参与贡献
|
|
421
|
+
|
|
422
|
+
当前项目仍在快速迭代中。如果你发现问题、看到缺失的 parity 能力,或者想提出更好的 API 设计,欢迎直接提 Issue 或发 PR。
|