klaus-agent 0.2.0 → 0.2.2
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 +37 -11
- package/README.zh-CN.md +709 -0
- package/dist/core/agent-loop.d.ts +2 -1
- package/dist/core/agent-loop.js +5 -1
- package/dist/core/agent-loop.js.map +1 -1
- package/dist/core/agent.js +1 -0
- package/dist/core/agent.js.map +1 -1
- package/dist/index.d.ts +3 -4
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/llm/provider.js +5 -11
- package/dist/llm/provider.js.map +1 -1
- package/dist/llm/types.d.ts +17 -0
- package/dist/providers/index.d.ts +1 -0
- package/dist/providers/index.js +1 -0
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/openai-codex.d.ts +8 -0
- package/dist/providers/openai-codex.js +334 -0
- package/dist/providers/openai-codex.js.map +1 -0
- 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 +21 -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 +6 -1
- package/src/core/agent.ts +1 -0
- package/src/index.ts +4 -3
- package/src/llm/provider.ts +5 -12
- package/src/llm/types.ts +19 -0
- package/src/providers/openai-codex.ts +399 -0
- 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 +20 -1
- package/src/types.ts +4 -0
- package/src/providers/index.ts +0 -6
- 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
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Universal agent framework SDK. Inject tools, skills, and systemPrompt to build your agent — no wrapper needed.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
[中文文档](./README.zh-CN.md)
|
|
6
6
|
|
|
7
7
|
## Install
|
|
8
8
|
|
|
@@ -47,12 +47,11 @@ const messages = await agent.prompt("Say hello");
|
|
|
47
47
|
|
|
48
48
|
Single package, 14 modules, zero wrappers. All capabilities are built-in and opt-in via config.
|
|
49
49
|
|
|
50
|
-
单包架构,14 个模块,零包装层。所有能力内置,通过 config 按需启用。
|
|
51
|
-
|
|
52
50
|
```
|
|
53
51
|
src/
|
|
54
52
|
├── core/ Agent + AgentLoop (nested dual-loop runtime)
|
|
55
|
-
├── llm/ Provider
|
|
53
|
+
├── llm/ Provider registry + abstraction
|
|
54
|
+
├── providers/ 5 built-in protocol providers (Anthropic, OpenAI, OpenAI Responses, OpenAI Codex, Gemini)
|
|
56
55
|
├── tools/ Tool executor (sequential/parallel) + MCP adapter
|
|
57
56
|
├── approval/ Queue-based approval system
|
|
58
57
|
├── session/ JSONL tree persistence with branching
|
|
@@ -106,19 +105,26 @@ await agent.dispose();
|
|
|
106
105
|
|
|
107
106
|
### LLM Provider
|
|
108
107
|
|
|
109
|
-
Provider-agnostic abstraction
|
|
110
|
-
|
|
111
|
-
```typescript
|
|
112
|
-
import { registerProvider, resolveProvider } from "@klaus-ai/agent";
|
|
108
|
+
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`.
|
|
113
109
|
|
|
114
|
-
|
|
115
|
-
registerProvider("openai", (config) => new MyOpenAIProvider(config.apiKey));
|
|
110
|
+
Built-in providers: `anthropic`, `openai`, `openai-responses`, `openai-codex`, `google`
|
|
116
111
|
|
|
117
|
-
|
|
112
|
+
```typescript
|
|
113
|
+
// Use any built-in provider
|
|
118
114
|
const agent = createAgent({
|
|
119
115
|
model: { provider: "openai", model: "gpt-4", maxContextTokens: 128000 },
|
|
120
116
|
...
|
|
121
117
|
});
|
|
118
|
+
|
|
119
|
+
// Connect a compatible service via custom baseUrl
|
|
120
|
+
const agent2 = createAgent({
|
|
121
|
+
model: { provider: "openai", model: "my-model", maxContextTokens: 128000, baseUrl: "https://my-service/v1" },
|
|
122
|
+
...
|
|
123
|
+
});
|
|
124
|
+
|
|
125
|
+
// Register a fully custom provider
|
|
126
|
+
import { registerProvider } from "@klaus-ai/agent";
|
|
127
|
+
registerProvider("my-provider", (config) => new MyProvider(config.apiKey, config.baseUrl));
|
|
122
128
|
```
|
|
123
129
|
|
|
124
130
|
Provider interface:
|
|
@@ -131,6 +137,26 @@ interface LLMProvider {
|
|
|
131
137
|
// Stream events: text | tool_call_start | tool_call_delta | thinking | done | error
|
|
132
138
|
```
|
|
133
139
|
|
|
140
|
+
Cost tracking — provide per-million-token pricing via `ModelConfig.cost`, and the agent automatically calculates actual dollar costs on each `message_end` event:
|
|
141
|
+
|
|
142
|
+
```typescript
|
|
143
|
+
const agent = createAgent({
|
|
144
|
+
model: {
|
|
145
|
+
provider: "anthropic",
|
|
146
|
+
model: "claude-sonnet-4-20250514",
|
|
147
|
+
maxContextTokens: 200000,
|
|
148
|
+
cost: { input: 3, output: 15, cacheRead: 0.3, cacheWrite: 3.75 },
|
|
149
|
+
},
|
|
150
|
+
...
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
agent.subscribe((event) => {
|
|
154
|
+
if (event.type === "message_end" && event.usage?.cost) {
|
|
155
|
+
console.log(`Request cost: $${event.usage.cost.total.toFixed(6)}`);
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
```
|
|
159
|
+
|
|
134
160
|
### Canonical Message Format
|
|
135
161
|
|
|
136
162
|
Provider-agnostic message types used throughout the framework:
|