klaus-agent 0.2.1 → 0.3.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/README.md +69 -15
- package/README.zh-CN.md +69 -15
- package/dist/core/agent-loop.d.ts +4 -1
- package/dist/core/agent-loop.js +20 -3
- package/dist/core/agent-loop.js.map +1 -1
- package/dist/core/agent.d.ts +5 -0
- package/dist/core/agent.js +25 -0
- package/dist/core/agent.js.map +1 -1
- package/dist/index.d.ts +10 -4
- package/dist/index.js +7 -3
- package/dist/index.js.map +1 -1
- package/dist/llm/provider.js +3 -11
- package/dist/llm/provider.js.map +1 -1
- package/dist/llm/types.d.ts +17 -0
- package/dist/planning/nag-injection.d.ts +8 -0
- package/dist/planning/nag-injection.js +21 -0
- package/dist/planning/nag-injection.js.map +1 -0
- package/dist/planning/planning-manager.d.ts +27 -0
- package/dist/planning/planning-manager.js +109 -0
- package/dist/planning/planning-manager.js.map +1 -0
- package/dist/planning/tools.d.ts +3 -0
- package/dist/planning/tools.js +50 -0
- package/dist/planning/tools.js.map +1 -0
- package/dist/planning/types.d.ts +30 -0
- package/dist/planning/types.js +6 -0
- package/dist/planning/types.js.map +1 -0
- package/dist/providers/openai-codex.js +1 -71
- package/dist/providers/openai-codex.js.map +1 -1
- package/dist/providers/openai-responses-shared.d.ts +36 -0
- package/dist/providers/openai-responses-shared.js +74 -0
- package/dist/providers/openai-responses-shared.js.map +1 -0
- package/dist/providers/openai-responses.d.ts +7 -0
- package/dist/providers/openai-responses.js +128 -0
- package/dist/providers/openai-responses.js.map +1 -0
- package/dist/providers/openai.js +1 -10
- package/dist/providers/openai.js.map +1 -1
- package/dist/providers/shared.d.ts +5 -1
- package/dist/providers/shared.js +20 -0
- package/dist/providers/shared.js.map +1 -1
- package/dist/types.d.ts +2 -2
- package/package.json +1 -1
- package/src/core/agent-loop.ts +25 -3
- package/src/core/agent.ts +30 -0
- package/src/index.ts +20 -3
- package/src/llm/provider.ts +3 -12
- package/src/llm/types.ts +19 -0
- package/src/planning/nag-injection.ts +24 -0
- package/src/planning/planning-manager.ts +133 -0
- package/src/planning/tools.ts +71 -0
- package/src/planning/types.ts +40 -0
- package/src/providers/openai-codex.ts +2 -89
- package/src/providers/openai-responses-shared.ts +97 -0
- package/src/providers/openai-responses.ts +152 -0
- package/src/providers/openai.ts +1 -8
- package/src/providers/shared.ts +19 -1
- package/src/types.ts +4 -0
- package/src/providers/index.ts +0 -7
- package/src/providers/kimi.ts +0 -12
- package/src/providers/minimax.ts +0 -12
- package/src/providers/volcengine.ts +0 -12
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# klaus-agent
|
|
2
2
|
|
|
3
3
|
Universal agent framework SDK. Inject tools, skills, and systemPrompt to build your agent — no wrapper needed.
|
|
4
4
|
|
|
@@ -7,13 +7,13 @@ Universal agent framework SDK. Inject tools, skills, and systemPrompt to build y
|
|
|
7
7
|
## Install
|
|
8
8
|
|
|
9
9
|
```bash
|
|
10
|
-
npm install
|
|
10
|
+
npm install klaus-agent
|
|
11
11
|
```
|
|
12
12
|
|
|
13
13
|
## Quick Start
|
|
14
14
|
|
|
15
15
|
```typescript
|
|
16
|
-
import { createAgent } from "
|
|
16
|
+
import { createAgent } from "klaus-agent";
|
|
17
17
|
import { Type } from "@sinclair/typebox";
|
|
18
18
|
|
|
19
19
|
const agent = createAgent({
|
|
@@ -45,13 +45,13 @@ const messages = await agent.prompt("Say hello");
|
|
|
45
45
|
|
|
46
46
|
## Architecture
|
|
47
47
|
|
|
48
|
-
Single package,
|
|
48
|
+
Single package, 15 modules, zero wrappers. All capabilities are built-in and opt-in via config.
|
|
49
49
|
|
|
50
50
|
```
|
|
51
51
|
src/
|
|
52
52
|
├── core/ Agent + AgentLoop (nested dual-loop runtime)
|
|
53
53
|
├── llm/ Provider registry + abstraction
|
|
54
|
-
├── providers/
|
|
54
|
+
├── providers/ 5 built-in protocol providers (Anthropic, OpenAI, OpenAI Responses, OpenAI Codex, Gemini)
|
|
55
55
|
├── tools/ Tool executor (sequential/parallel) + MCP adapter
|
|
56
56
|
├── approval/ Queue-based approval system
|
|
57
57
|
├── session/ JSONL tree persistence with branching
|
|
@@ -63,6 +63,7 @@ src/
|
|
|
63
63
|
├── skills/ Markdown skill discovery + template rendering
|
|
64
64
|
├── wire/ Typed async event channel with replay buffer
|
|
65
65
|
├── background/ In-process async task manager
|
|
66
|
+
├── planning/ Two-phase planning + structured todo + nag injection
|
|
66
67
|
└── utils/ ID generation + JSONL helpers
|
|
67
68
|
```
|
|
68
69
|
|
|
@@ -105,11 +106,9 @@ await agent.dispose();
|
|
|
105
106
|
|
|
106
107
|
### LLM Provider
|
|
107
108
|
|
|
108
|
-
Provider-agnostic abstraction with
|
|
109
|
+
Provider-agnostic abstraction with 5 built-in protocol providers. All providers support streaming, retry (3 attempts, exponential backoff), and extended thinking. Connect any compatible service by providing a custom `baseUrl`.
|
|
109
110
|
|
|
110
|
-
Built-in providers: `anthropic`, `openai`, `openai-
|
|
111
|
-
|
|
112
|
-
Protocol-compatible proxies: `openai-compatible`, `anthropic-compatible`, `gemini-compatible` — connect any compatible service by providing a `baseUrl`.
|
|
111
|
+
Built-in providers: `anthropic`, `openai`, `openai-responses`, `openai-codex`, `google`
|
|
113
112
|
|
|
114
113
|
```typescript
|
|
115
114
|
// Use any built-in provider
|
|
@@ -118,14 +117,14 @@ const agent = createAgent({
|
|
|
118
117
|
...
|
|
119
118
|
});
|
|
120
119
|
|
|
121
|
-
//
|
|
120
|
+
// Connect a compatible service via custom baseUrl
|
|
122
121
|
const agent2 = createAgent({
|
|
123
|
-
model: { provider: "openai
|
|
122
|
+
model: { provider: "openai", model: "my-model", maxContextTokens: 128000, baseUrl: "https://my-service/v1" },
|
|
124
123
|
...
|
|
125
124
|
});
|
|
126
125
|
|
|
127
126
|
// Register a fully custom provider
|
|
128
|
-
import { registerProvider } from "
|
|
127
|
+
import { registerProvider } from "klaus-agent";
|
|
129
128
|
registerProvider("my-provider", (config) => new MyProvider(config.apiKey, config.baseUrl));
|
|
130
129
|
```
|
|
131
130
|
|
|
@@ -139,6 +138,26 @@ interface LLMProvider {
|
|
|
139
138
|
// Stream events: text | tool_call_start | tool_call_delta | thinking | done | error
|
|
140
139
|
```
|
|
141
140
|
|
|
141
|
+
Cost tracking — provide per-million-token pricing via `ModelConfig.cost`, and the agent automatically calculates actual dollar costs on each `message_end` event:
|
|
142
|
+
|
|
143
|
+
```typescript
|
|
144
|
+
const agent = createAgent({
|
|
145
|
+
model: {
|
|
146
|
+
provider: "anthropic",
|
|
147
|
+
model: "claude-sonnet-4-20250514",
|
|
148
|
+
maxContextTokens: 200000,
|
|
149
|
+
cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 },
|
|
150
|
+
},
|
|
151
|
+
...
|
|
152
|
+
});
|
|
153
|
+
|
|
154
|
+
agent.subscribe((event) => {
|
|
155
|
+
if (event.type === "message_end" && event.usage?.cost) {
|
|
156
|
+
console.log(`Request cost: $${event.usage.cost.total.toFixed(6)}`);
|
|
157
|
+
}
|
|
158
|
+
});
|
|
159
|
+
```
|
|
160
|
+
|
|
142
161
|
### Canonical Message Format
|
|
143
162
|
|
|
144
163
|
Provider-agnostic message types used throughout the framework:
|
|
@@ -172,7 +191,7 @@ Tools use TypeBox schemas for parameter validation. The executor supports sequen
|
|
|
172
191
|
|
|
173
192
|
```typescript
|
|
174
193
|
import { Type } from "@sinclair/typebox";
|
|
175
|
-
import type { AgentTool } from "
|
|
194
|
+
import type { AgentTool } from "klaus-agent";
|
|
176
195
|
|
|
177
196
|
const readFile: AgentTool = {
|
|
178
197
|
name: "read_file",
|
|
@@ -366,7 +385,7 @@ Subagents share the parent's approval state (yolo, autoApproveActions) but have
|
|
|
366
385
|
Event-driven plugin system with 18 event types across agent lifecycle, tool execution, LLM requests, context, compaction, session, and background tasks.
|
|
367
386
|
|
|
368
387
|
```typescript
|
|
369
|
-
import type { ExtensionFactory } from "
|
|
388
|
+
import type { ExtensionFactory } from "klaus-agent";
|
|
370
389
|
|
|
371
390
|
const myExtension: ExtensionFactory = (api) => {
|
|
372
391
|
// Register event handlers
|
|
@@ -518,6 +537,38 @@ handle.abort();
|
|
|
518
537
|
|
|
519
538
|
Built-in tools: `start_background_task`, `check_task_status`, `get_task_result`.
|
|
520
539
|
|
|
540
|
+
### Planning (Two-Phase Todo)
|
|
541
|
+
|
|
542
|
+
Optional two-phase planning system inspired by [learn-claude-code](https://github.com/anthropics/learn-claude-code) s03 (TodoWrite) and pi-mono's plan-mode extension. Combines structured todo tracking with phase-gated tool access and nag reminders.
|
|
543
|
+
|
|
544
|
+
```typescript
|
|
545
|
+
const agent = createAgent({
|
|
546
|
+
planning: {
|
|
547
|
+
readOnlyTools: ["read_file", "search"], // Tools available during planning phase
|
|
548
|
+
nagAfterRounds: 3, // Remind model to update todos after N rounds
|
|
549
|
+
nagMessage: "<reminder>Update todos.</reminder>", // Custom nag text
|
|
550
|
+
maxTodos: 50, // Upper bound on todo items (default: 50)
|
|
551
|
+
},
|
|
552
|
+
...
|
|
553
|
+
});
|
|
554
|
+
|
|
555
|
+
// Access planning state
|
|
556
|
+
console.log(agent.planning?.phase); // "planning" | "executing"
|
|
557
|
+
console.log(agent.planning?.todos); // readonly TodoItem[]
|
|
558
|
+
```
|
|
559
|
+
|
|
560
|
+
**Workflow:**
|
|
561
|
+
|
|
562
|
+
1. Agent starts in **planning phase** — only `readOnlyTools` + `todo` + `plan_mode` tools are available
|
|
563
|
+
2. The LLM uses the `todo` tool to create a structured plan (only one `in_progress` item allowed at a time)
|
|
564
|
+
3. The LLM calls `plan_mode({ action: "start_execution" })` to switch to **execution phase**
|
|
565
|
+
4. In execution phase, all tools are available; if the LLM goes 3+ rounds without updating todos, a `<reminder>` is automatically injected
|
|
566
|
+
5. The LLM can switch back to planning at any time via `plan_mode({ action: "switch_to_planning" })`
|
|
567
|
+
|
|
568
|
+
Built-in tools: `todo`, `plan_mode`.
|
|
569
|
+
|
|
570
|
+
If `readOnlyTools` is omitted or empty, all tools remain available during planning (phase separation is advisory only via the tool descriptions).
|
|
571
|
+
|
|
521
572
|
### Hooks
|
|
522
573
|
|
|
523
574
|
User-level hooks for transforming context and intercepting tool calls:
|
|
@@ -579,7 +630,7 @@ agent.subscribe((event) => {
|
|
|
579
630
|
## Full Example
|
|
580
631
|
|
|
581
632
|
```typescript
|
|
582
|
-
import { createAgent } from "
|
|
633
|
+
import { createAgent } from "klaus-agent";
|
|
583
634
|
import { Type } from "@sinclair/typebox";
|
|
584
635
|
|
|
585
636
|
const agent = createAgent({
|
|
@@ -622,6 +673,7 @@ const agent = createAgent({
|
|
|
622
673
|
|
|
623
674
|
wire: { bufferSize: 100 },
|
|
624
675
|
backgroundTasks: { factories: { build: buildTaskFactory } },
|
|
676
|
+
planning: { readOnlyTools: ["read_file", "search"], nagAfterRounds: 3 },
|
|
625
677
|
|
|
626
678
|
hooks: {
|
|
627
679
|
transformContext: async (msgs) => msgs,
|
|
@@ -664,6 +716,7 @@ await agent.dispose();
|
|
|
664
716
|
| `mcp` | `{ servers, clientFactory }` | no | — | MCP server configs |
|
|
665
717
|
| `wire` | `{ bufferSize }` | no | `{ bufferSize: 0 }` | Event channel config |
|
|
666
718
|
| `backgroundTasks` | `{ factories }` | no | — | Background task factories |
|
|
719
|
+
| `planning` | `PlanningConfig` | no | — | Two-phase planning with todo tracking and nag reminders |
|
|
667
720
|
| `provider` | `LLMProvider` | no | — | Custom LLM provider (bypasses registry) |
|
|
668
721
|
|
|
669
722
|
### `Agent` Instance
|
|
@@ -687,6 +740,7 @@ await agent.dispose();
|
|
|
687
740
|
| `mcpAdapter` | `MCPAdapter` (if MCP configured). |
|
|
688
741
|
| `wire` | `Wire` event channel (always available). |
|
|
689
742
|
| `backgroundTasks` | `BackgroundTaskManager` (if configured). |
|
|
743
|
+
| `planning` | `PlanningManager` (if configured). |
|
|
690
744
|
| `setSystemPrompt(prompt)` | Update system prompt. |
|
|
691
745
|
| `setModel(model)` | Update model config. |
|
|
692
746
|
| `setTools(tools)` | Replace tools (not while running). |
|
package/README.zh-CN.md
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
#
|
|
1
|
+
# klaus-agent
|
|
2
2
|
|
|
3
3
|
通用 Agent 框架 SDK。注入 tools、skills、systemPrompt 即可构建 agent,无需再包一层。
|
|
4
4
|
|
|
5
5
|
## 安装
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
npm install
|
|
8
|
+
npm install klaus-agent
|
|
9
9
|
```
|
|
10
10
|
|
|
11
11
|
## 快速开始
|
|
12
12
|
|
|
13
13
|
```typescript
|
|
14
|
-
import { createAgent } from "
|
|
14
|
+
import { createAgent } from "klaus-agent";
|
|
15
15
|
import { Type } from "@sinclair/typebox";
|
|
16
16
|
|
|
17
17
|
const agent = createAgent({
|
|
@@ -43,13 +43,13 @@ const messages = await agent.prompt("Say hello");
|
|
|
43
43
|
|
|
44
44
|
## 架构
|
|
45
45
|
|
|
46
|
-
单包架构,
|
|
46
|
+
单包架构,15 个模块,零包装层。所有能力内置,通过 config 按需启用。
|
|
47
47
|
|
|
48
48
|
```
|
|
49
49
|
src/
|
|
50
50
|
├── core/ Agent + AgentLoop(嵌套双循环运行时)
|
|
51
51
|
├── llm/ Provider 注册中心 + 抽象层
|
|
52
|
-
├── providers/
|
|
52
|
+
├── providers/ 5 个内置协议 Provider(Anthropic、OpenAI、OpenAI Responses、OpenAI Codex、Gemini)
|
|
53
53
|
├── tools/ 工具执行器(顺序/并行)+ MCP 适配器
|
|
54
54
|
├── approval/ 基于队列的审批系统
|
|
55
55
|
├── session/ JSONL 树形持久化,支持分支
|
|
@@ -61,6 +61,7 @@ src/
|
|
|
61
61
|
├── skills/ Markdown 技能发现 + 模板渲染
|
|
62
62
|
├── wire/ 类型化异步事件通道,支持回放缓冲
|
|
63
63
|
├── background/ 进程内异步任务管理器
|
|
64
|
+
├── planning/ 两阶段规划 + 结构化 todo + nag 注入
|
|
64
65
|
└── utils/ ID 生成 + JSONL 工具
|
|
65
66
|
```
|
|
66
67
|
|
|
@@ -103,11 +104,9 @@ await agent.dispose();
|
|
|
103
104
|
|
|
104
105
|
### LLM Provider
|
|
105
106
|
|
|
106
|
-
Provider 无关的抽象层,内置
|
|
107
|
+
Provider 无关的抽象层,内置 5 个协议 Provider。所有 Provider 支持流式输出、重试(3 次,指数退避)和扩展思考。通过自定义 `baseUrl` 即可接入任何兼容服务。
|
|
107
108
|
|
|
108
|
-
内置 Provider:`anthropic`、`openai`、`openai-codex`、`google
|
|
109
|
-
|
|
110
|
-
协议兼容代理:`openai-compatible`、`anthropic-compatible`、`gemini-compatible` — 提供 `baseUrl` 即可接入任何兼容服务。
|
|
109
|
+
内置 Provider:`anthropic`、`openai`、`openai-responses`、`openai-codex`、`google`
|
|
111
110
|
|
|
112
111
|
```typescript
|
|
113
112
|
// 使用内置 Provider
|
|
@@ -116,14 +115,14 @@ const agent = createAgent({
|
|
|
116
115
|
...
|
|
117
116
|
});
|
|
118
117
|
|
|
119
|
-
//
|
|
118
|
+
// 通过自定义 baseUrl 接入兼容服务
|
|
120
119
|
const agent2 = createAgent({
|
|
121
|
-
model: { provider: "openai
|
|
120
|
+
model: { provider: "openai", model: "my-model", maxContextTokens: 128000, baseUrl: "https://my-service/v1" },
|
|
122
121
|
...
|
|
123
122
|
});
|
|
124
123
|
|
|
125
124
|
// 注册完全自定义的 Provider
|
|
126
|
-
import { registerProvider } from "
|
|
125
|
+
import { registerProvider } from "klaus-agent";
|
|
127
126
|
registerProvider("my-provider", (config) => new MyProvider(config.apiKey, config.baseUrl));
|
|
128
127
|
```
|
|
129
128
|
|
|
@@ -137,6 +136,26 @@ interface LLMProvider {
|
|
|
137
136
|
// 流式事件类型:text | tool_call_start | tool_call_delta | thinking | done | error
|
|
138
137
|
```
|
|
139
138
|
|
|
139
|
+
成本追踪 — 通过 `ModelConfig.cost` 提供每百万 token 的单价,agent 会在每次 `message_end` 事件中自动计算实际成本:
|
|
140
|
+
|
|
141
|
+
```typescript
|
|
142
|
+
const agent = createAgent({
|
|
143
|
+
model: {
|
|
144
|
+
provider: "anthropic",
|
|
145
|
+
model: "claude-sonnet-4-20250514",
|
|
146
|
+
maxContextTokens: 200000,
|
|
147
|
+
cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 },
|
|
148
|
+
},
|
|
149
|
+
...
|
|
150
|
+
});
|
|
151
|
+
|
|
152
|
+
agent.subscribe((event) => {
|
|
153
|
+
if (event.type === "message_end" && event.usage?.cost) {
|
|
154
|
+
console.log(`请求成本: $${event.usage.cost.total.toFixed(6)}`);
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
```
|
|
158
|
+
|
|
140
159
|
### 标准消息格式
|
|
141
160
|
|
|
142
161
|
框架内部使用的 Provider 无关消息类型:
|
|
@@ -170,7 +189,7 @@ interface ToolResultMessage {
|
|
|
170
189
|
|
|
171
190
|
```typescript
|
|
172
191
|
import { Type } from "@sinclair/typebox";
|
|
173
|
-
import type { AgentTool } from "
|
|
192
|
+
import type { AgentTool } from "klaus-agent";
|
|
174
193
|
|
|
175
194
|
const readFile: AgentTool = {
|
|
176
195
|
name: "read_file",
|
|
@@ -364,7 +383,7 @@ agent.laborMarket.removeDynamic("analyst");
|
|
|
364
383
|
事件驱动的插件系统,覆盖 Agent 生命周期、工具执行、LLM 请求、上下文、压缩、会话和后台任务共 18 种事件类型。
|
|
365
384
|
|
|
366
385
|
```typescript
|
|
367
|
-
import type { ExtensionFactory } from "
|
|
386
|
+
import type { ExtensionFactory } from "klaus-agent";
|
|
368
387
|
|
|
369
388
|
const myExtension: ExtensionFactory = (api) => {
|
|
370
389
|
// 注册事件处理器
|
|
@@ -516,6 +535,38 @@ handle.abort();
|
|
|
516
535
|
|
|
517
536
|
内置工具:`start_background_task`、`check_task_status`、`get_task_result`。
|
|
518
537
|
|
|
538
|
+
### Planning(两阶段 Todo)
|
|
539
|
+
|
|
540
|
+
可选的两阶段规划系统。结合结构化 todo 管理、阶段性工具访问控制和 nag 提醒。
|
|
541
|
+
|
|
542
|
+
```typescript
|
|
543
|
+
const agent = createAgent({
|
|
544
|
+
planning: {
|
|
545
|
+
readOnlyTools: ["read_file", "search"], // 规划阶段可用的工具
|
|
546
|
+
nagAfterRounds: 3, // 连续 N 轮不更新 todo 后注入提醒
|
|
547
|
+
nagMessage: "<reminder>更新你的 todo。</reminder>", // 自定义提醒文本
|
|
548
|
+
maxTodos: 50, // todo 数量上限(默认 50)
|
|
549
|
+
},
|
|
550
|
+
...
|
|
551
|
+
});
|
|
552
|
+
|
|
553
|
+
// 访问规划状态
|
|
554
|
+
console.log(agent.planning?.phase); // "planning" | "executing"
|
|
555
|
+
console.log(agent.planning?.todos); // readonly TodoItem[]
|
|
556
|
+
```
|
|
557
|
+
|
|
558
|
+
**工作流:**
|
|
559
|
+
|
|
560
|
+
1. Agent 启动后进入 **planning 阶段** — 只有 `readOnlyTools` + `todo` + `plan_mode` 工具可用
|
|
561
|
+
2. LLM 使用 `todo` 工具创建结构化计划(同一时间只允许一个 `in_progress` 项)
|
|
562
|
+
3. LLM 调用 `plan_mode({ action: "start_execution" })` 切换到 **execution 阶段**
|
|
563
|
+
4. 执行阶段所有工具可用;如果 LLM 连续 3+ 轮不更新 todo,自动注入 `<reminder>`
|
|
564
|
+
5. 随时可通过 `plan_mode({ action: "switch_to_planning" })` 切回规划阶段
|
|
565
|
+
|
|
566
|
+
内置工具:`todo`、`plan_mode`。
|
|
567
|
+
|
|
568
|
+
如果 `readOnlyTools` 未配置或为空,规划阶段所有工具仍可用(阶段分离仅通过工具描述建议模型遵守)。
|
|
569
|
+
|
|
519
570
|
### Hooks
|
|
520
571
|
|
|
521
572
|
用户级 hook,用于转换上下文和拦截工具调用:
|
|
@@ -577,7 +628,7 @@ agent.subscribe((event) => {
|
|
|
577
628
|
## 完整示例
|
|
578
629
|
|
|
579
630
|
```typescript
|
|
580
|
-
import { createAgent } from "
|
|
631
|
+
import { createAgent } from "klaus-agent";
|
|
581
632
|
import { Type } from "@sinclair/typebox";
|
|
582
633
|
|
|
583
634
|
const agent = createAgent({
|
|
@@ -620,6 +671,7 @@ const agent = createAgent({
|
|
|
620
671
|
|
|
621
672
|
wire: { bufferSize: 100 },
|
|
622
673
|
backgroundTasks: { factories: { build: buildTaskFactory } },
|
|
674
|
+
planning: { readOnlyTools: ["read_file", "search"], nagAfterRounds: 3 },
|
|
623
675
|
|
|
624
676
|
hooks: {
|
|
625
677
|
transformContext: async (msgs) => msgs,
|
|
@@ -662,6 +714,7 @@ await agent.dispose();
|
|
|
662
714
|
| `mcp` | `{ servers, clientFactory }` | 否 | — | MCP 服务器配置 |
|
|
663
715
|
| `wire` | `{ bufferSize }` | 否 | `{ bufferSize: 0 }` | 事件通道配置 |
|
|
664
716
|
| `backgroundTasks` | `{ factories }` | 否 | — | 后台任务工厂 |
|
|
717
|
+
| `planning` | `PlanningConfig` | 否 | — | 两阶段规划,含 todo 管理和 nag 提醒 |
|
|
665
718
|
| `provider` | `LLMProvider` | 否 | — | 自定义 LLM Provider(绕过注册中心) |
|
|
666
719
|
|
|
667
720
|
### `Agent` 实例
|
|
@@ -685,6 +738,7 @@ await agent.dispose();
|
|
|
685
738
|
| `mcpAdapter` | `MCPAdapter`(需配置 MCP)。 |
|
|
686
739
|
| `wire` | `Wire` 事件通道(始终可用)。 |
|
|
687
740
|
| `backgroundTasks` | `BackgroundTaskManager`(需配置)。 |
|
|
741
|
+
| `planning` | `PlanningManager`(需配置)。 |
|
|
688
742
|
| `setSystemPrompt(prompt)` | 更新系统提示词。 |
|
|
689
743
|
| `setModel(model)` | 更新模型配置。 |
|
|
690
744
|
| `setTools(tools)` | 替换工具(运行中不可调用)。 |
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AgentMessage, AgentEvent, AgentHooks, ThinkingLevel } from "../types.js";
|
|
1
|
+
import type { AgentMessage, AgentEvent, AgentHooks, ThinkingLevel, ModelCost } from "../types.js";
|
|
2
2
|
import type { AgentTool } from "../tools/types.js";
|
|
3
3
|
import type { LLMProvider } from "../llm/types.js";
|
|
4
4
|
import type { Approval } from "../approval/types.js";
|
|
@@ -7,6 +7,7 @@ import type { CheckpointManager } from "../checkpoint/checkpoint-manager.js";
|
|
|
7
7
|
import type { InjectionManager } from "../injection/injection-manager.js";
|
|
8
8
|
import type { ExtensionRunner } from "../extensions/runner.js";
|
|
9
9
|
import type { CompactionConfig } from "../compaction/types.js";
|
|
10
|
+
import type { PlanningManager } from "../planning/planning-manager.js";
|
|
10
11
|
export interface AgentLoopConfig {
|
|
11
12
|
provider: LLMProvider;
|
|
12
13
|
modelId: string;
|
|
@@ -33,5 +34,7 @@ export interface AgentLoopConfig {
|
|
|
33
34
|
compaction?: CompactionConfig & {
|
|
34
35
|
summarize?: (messages: AgentMessage[]) => Promise<string>;
|
|
35
36
|
};
|
|
37
|
+
planningManager?: PlanningManager;
|
|
38
|
+
modelCost?: ModelCost;
|
|
36
39
|
}
|
|
37
40
|
export declare function runAgentLoop(initialMessages: AgentMessage[], config: AgentLoopConfig): Promise<AgentMessage[]>;
|
package/dist/core/agent-loop.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
// Agent loop — nested while loop with full integration
|
|
2
2
|
// session, compaction, checkpoint, injection, extension all wired in
|
|
3
|
+
import { PLANNING_TOOL_NAMES } from "../planning/types.js";
|
|
3
4
|
import { executeToolCalls } from "../tools/executor.js";
|
|
4
5
|
import { estimateTokens, shouldCompact, findCutPoint } from "../compaction/compaction.js";
|
|
5
6
|
import { normalizeHistory } from "../injection/history-normalizer.js";
|
|
7
|
+
import { calculateCost } from "../providers/shared.js";
|
|
6
8
|
function defaultConvertToLlm(messages) {
|
|
7
9
|
return messages.filter((m) => typeof m === "object" && m !== null && "role" in m &&
|
|
8
10
|
(m.role === "user" || m.role === "assistant" || m.role === "tool_result"));
|
|
@@ -168,8 +170,13 @@ export async function runAgentLoop(initialMessages, config) {
|
|
|
168
170
|
if (config.capabilities?.vision === false) {
|
|
169
171
|
llmMessages = stripImages(llmMessages);
|
|
170
172
|
}
|
|
173
|
+
// --- Phase-aware tool filtering ---
|
|
174
|
+
let visibleTools = allTools;
|
|
175
|
+
if (config.planningManager?.phase === "planning" && config.planningManager.allowedInPlanning.size > 2) {
|
|
176
|
+
visibleTools = allTools.filter((t) => config.planningManager.allowedInPlanning.has(t.name));
|
|
177
|
+
}
|
|
171
178
|
// --- Stream LLM response ---
|
|
172
|
-
const toolDefs = toolsToDefinitions(
|
|
179
|
+
const toolDefs = toolsToDefinitions(visibleTools);
|
|
173
180
|
let requestOptions = {
|
|
174
181
|
model: modelId,
|
|
175
182
|
systemPrompt,
|
|
@@ -204,7 +211,10 @@ export async function runAgentLoop(initialMessages, config) {
|
|
|
204
211
|
if (event.type === "done") {
|
|
205
212
|
assistantMessage = event.message;
|
|
206
213
|
usage = event.usage;
|
|
207
|
-
|
|
214
|
+
const cost = calculateCost(config.modelCost, event.usage);
|
|
215
|
+
if (cost)
|
|
216
|
+
usage.cost = cost;
|
|
217
|
+
onEvent({ type: "message_end", message: event.message, usage });
|
|
208
218
|
await extensionRunner?.emitSimple("message_end", { message: event.message });
|
|
209
219
|
}
|
|
210
220
|
else if (event.type === "error") {
|
|
@@ -232,7 +242,7 @@ export async function runAgentLoop(initialMessages, config) {
|
|
|
232
242
|
const toolResults = [];
|
|
233
243
|
if (toolCalls.length > 0) {
|
|
234
244
|
const results = await executeToolCalls(toolCalls, {
|
|
235
|
-
tools:
|
|
245
|
+
tools: visibleTools,
|
|
236
246
|
mode: config.toolExecution,
|
|
237
247
|
approval: config.approval,
|
|
238
248
|
agentName: config.agentName,
|
|
@@ -271,6 +281,13 @@ export async function runAgentLoop(initialMessages, config) {
|
|
|
271
281
|
for (const rm of resultMessages) {
|
|
272
282
|
await sessionManager?.appendMessage(rm);
|
|
273
283
|
}
|
|
284
|
+
// --- Planning: tick round counter (reset happens inside updateTodos when todo tool is called) ---
|
|
285
|
+
if (config.planningManager) {
|
|
286
|
+
const calledTodo = toolCalls.some((tc) => tc.name === PLANNING_TOOL_NAMES.todo);
|
|
287
|
+
if (!calledTodo) {
|
|
288
|
+
config.planningManager.tickRound();
|
|
289
|
+
}
|
|
290
|
+
}
|
|
274
291
|
hasMoreWork = true;
|
|
275
292
|
}
|
|
276
293
|
onEvent({ type: "turn_end", message: assistantMessage, toolResults });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-loop.js","sourceRoot":"","sources":["../../src/core/agent-loop.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agent-loop.js","sourceRoot":"","sources":["../../src/core/agent-loop.ts"],"names":[],"mappings":"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"}
|
package/dist/core/agent.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ import type { SubagentConfig } from "../multi-agent/types.js";
|
|
|
11
11
|
import type { SkillSource } from "../skills/types.js";
|
|
12
12
|
import type { MCPServerConfig, MCPClient } from "../tools/mcp-adapter.js";
|
|
13
13
|
import type { TaskFactory } from "../background/types.js";
|
|
14
|
+
import type { PlanningConfig } from "../planning/types.js";
|
|
14
15
|
import { SessionManager } from "../session/session-manager.js";
|
|
15
16
|
import { CheckpointManager } from "../checkpoint/checkpoint-manager.js";
|
|
16
17
|
import { InjectionManager } from "../injection/injection-manager.js";
|
|
@@ -19,6 +20,7 @@ import { LaborMarket } from "../multi-agent/labor-market.js";
|
|
|
19
20
|
import { MCPAdapter } from "../tools/mcp-adapter.js";
|
|
20
21
|
import { Wire } from "../wire/wire.js";
|
|
21
22
|
import { BackgroundTaskManager } from "../background/task-manager.js";
|
|
23
|
+
import { PlanningManager } from "../planning/planning-manager.js";
|
|
22
24
|
export interface AgentConfig {
|
|
23
25
|
model: ModelConfig;
|
|
24
26
|
systemPrompt: string | (() => string | Promise<string>);
|
|
@@ -47,6 +49,7 @@ export interface AgentConfig {
|
|
|
47
49
|
backgroundTasks?: {
|
|
48
50
|
factories?: Record<string, TaskFactory>;
|
|
49
51
|
};
|
|
52
|
+
planning?: PlanningConfig;
|
|
50
53
|
}
|
|
51
54
|
export declare class Agent {
|
|
52
55
|
private _state;
|
|
@@ -67,6 +70,7 @@ export declare class Agent {
|
|
|
67
70
|
private _mcpAdapter;
|
|
68
71
|
private _wire;
|
|
69
72
|
private _backgroundTaskManager;
|
|
73
|
+
private _planningManager;
|
|
70
74
|
private _initialized;
|
|
71
75
|
constructor(config: AgentConfig);
|
|
72
76
|
prompt(input: string | AgentMessage | AgentMessage[]): Promise<AgentMessage[]>;
|
|
@@ -85,6 +89,7 @@ export declare class Agent {
|
|
|
85
89
|
get mcpAdapter(): MCPAdapter | undefined;
|
|
86
90
|
get wire(): Wire;
|
|
87
91
|
get backgroundTasks(): BackgroundTaskManager | undefined;
|
|
92
|
+
get planning(): PlanningManager | undefined;
|
|
88
93
|
setSystemPrompt(prompt: string): void;
|
|
89
94
|
setModel(model: ModelConfig): void;
|
|
90
95
|
setTools(tools: AgentTool[]): void;
|
package/dist/core/agent.js
CHANGED
|
@@ -13,6 +13,9 @@ import { LLMSummarizer, agentMessagesToCompactionInput } from "../compaction/sum
|
|
|
13
13
|
import { Wire } from "../wire/wire.js";
|
|
14
14
|
import { BackgroundTaskManager } from "../background/task-manager.js";
|
|
15
15
|
import { createBackgroundTaskTools } from "../background/tools.js";
|
|
16
|
+
import { PlanningManager } from "../planning/planning-manager.js";
|
|
17
|
+
import { createPlanningTools } from "../planning/tools.js";
|
|
18
|
+
import { PlanningNagProvider } from "../planning/nag-injection.js";
|
|
16
19
|
import { runAgentLoop } from "./agent-loop.js";
|
|
17
20
|
export class Agent {
|
|
18
21
|
_state;
|
|
@@ -34,6 +37,7 @@ export class Agent {
|
|
|
34
37
|
_mcpAdapter;
|
|
35
38
|
_wire;
|
|
36
39
|
_backgroundTaskManager;
|
|
40
|
+
_planningManager;
|
|
37
41
|
_initialized = false;
|
|
38
42
|
constructor(config) {
|
|
39
43
|
this._config = config;
|
|
@@ -90,6 +94,10 @@ export class Agent {
|
|
|
90
94
|
}
|
|
91
95
|
});
|
|
92
96
|
}
|
|
97
|
+
// Planning
|
|
98
|
+
if (config.planning) {
|
|
99
|
+
this._planningManager = new PlanningManager(config.planning);
|
|
100
|
+
}
|
|
93
101
|
}
|
|
94
102
|
// --- Public API ---
|
|
95
103
|
async prompt(input) {
|
|
@@ -160,6 +168,9 @@ export class Agent {
|
|
|
160
168
|
get backgroundTasks() {
|
|
161
169
|
return this._backgroundTaskManager;
|
|
162
170
|
}
|
|
171
|
+
get planning() {
|
|
172
|
+
return this._planningManager;
|
|
173
|
+
}
|
|
163
174
|
setSystemPrompt(prompt) {
|
|
164
175
|
this._state.systemPrompt = prompt;
|
|
165
176
|
}
|
|
@@ -262,6 +273,18 @@ export class Agent {
|
|
|
262
273
|
const bgTools = createBackgroundTaskTools(this._backgroundTaskManager, this._config.backgroundTasks?.factories);
|
|
263
274
|
this._state.tools = [...this._state.tools, ...bgTools];
|
|
264
275
|
}
|
|
276
|
+
// Planning tools + nag injection
|
|
277
|
+
if (this._planningManager) {
|
|
278
|
+
this._state.tools = [...this._state.tools, ...createPlanningTools(this._planningManager)];
|
|
279
|
+
// Register nag provider into injection manager (create one if needed)
|
|
280
|
+
const nagProvider = new PlanningNagProvider(this._planningManager);
|
|
281
|
+
if (this._injectionManager) {
|
|
282
|
+
this._injectionManager.addProvider(nagProvider);
|
|
283
|
+
}
|
|
284
|
+
else {
|
|
285
|
+
this._injectionManager = new InjectionManager([nagProvider]);
|
|
286
|
+
}
|
|
287
|
+
}
|
|
265
288
|
}
|
|
266
289
|
_normalizeInput(input) {
|
|
267
290
|
if (typeof input === "string") {
|
|
@@ -314,6 +337,7 @@ export class Agent {
|
|
|
314
337
|
hooks: this._config.hooks,
|
|
315
338
|
thinkingLevel: this._state.thinkingLevel,
|
|
316
339
|
capabilities: this._state.model.capabilities,
|
|
340
|
+
modelCost: this._state.model.cost,
|
|
317
341
|
signal: this._abortController.signal,
|
|
318
342
|
getSteeringMessages: () => {
|
|
319
343
|
const msgs = [...this._steeringQueue];
|
|
@@ -332,6 +356,7 @@ export class Agent {
|
|
|
332
356
|
injectionManager: this._injectionManager,
|
|
333
357
|
extensionRunner: this._extensionRunner,
|
|
334
358
|
compaction: compactionWithSummarizer,
|
|
359
|
+
planningManager: this._planningManager,
|
|
335
360
|
});
|
|
336
361
|
this._state.messages = result;
|
|
337
362
|
return result;
|