opc-agent 1.3.2 → 2.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/.github/ISSUE_TEMPLATE/bug_report.md +20 -0
- package/.github/ISSUE_TEMPLATE/feature_request.md +14 -0
- package/.github/PULL_REQUEST_TEMPLATE.md +13 -0
- package/.github/workflows/ci.yml +24 -0
- package/CHANGELOG.md +48 -63
- package/CONTRIBUTING.md +21 -60
- package/README.md +284 -348
- package/README.zh-CN.md +415 -415
- package/dist/channels/slack.js +93 -10
- package/dist/channels/telegram.d.ts +30 -9
- package/dist/channels/telegram.js +125 -33
- package/dist/channels/web.d.ts +10 -0
- package/dist/channels/web.js +33 -2
- package/dist/cli.js +667 -65
- package/dist/core/agent.d.ts +23 -0
- package/dist/core/agent.js +120 -3
- package/dist/core/runtime.d.ts +5 -0
- package/dist/core/runtime.js +71 -0
- package/dist/core/scheduler.d.ts +52 -0
- package/dist/core/scheduler.js +168 -0
- package/dist/core/subagent.d.ts +28 -0
- package/dist/core/subagent.js +65 -0
- package/dist/daemon.d.ts +3 -0
- package/dist/daemon.js +134 -0
- package/dist/deploy/hermes.js +22 -22
- package/dist/deploy/openclaw.js +31 -40
- package/dist/index.d.ts +10 -10
- package/dist/index.js +22 -15
- package/dist/providers/index.d.ts +6 -2
- package/dist/providers/index.js +22 -9
- package/dist/schema/oad.d.ts +180 -6
- package/dist/schema/oad.js +12 -1
- package/dist/skills/auto-learn.d.ts +28 -0
- package/dist/skills/auto-learn.js +257 -0
- package/dist/templates/code-reviewer.d.ts +0 -8
- package/dist/templates/code-reviewer.js +5 -9
- package/dist/templates/customer-service.d.ts +0 -8
- package/dist/templates/customer-service.js +2 -6
- package/dist/templates/data-analyst.d.ts +0 -8
- package/dist/templates/data-analyst.js +5 -9
- package/dist/templates/knowledge-base.d.ts +0 -8
- package/dist/templates/knowledge-base.js +2 -6
- package/dist/templates/sales-assistant.d.ts +0 -8
- package/dist/templates/sales-assistant.js +4 -8
- package/dist/templates/teacher.d.ts +0 -8
- package/dist/templates/teacher.js +6 -10
- package/dist/tools/builtin/datetime.d.ts +3 -0
- package/dist/tools/builtin/datetime.js +44 -0
- package/dist/tools/builtin/file.d.ts +3 -0
- package/dist/tools/builtin/file.js +151 -0
- package/dist/tools/builtin/index.d.ts +15 -0
- package/dist/tools/builtin/index.js +30 -0
- package/dist/tools/builtin/shell.d.ts +3 -0
- package/dist/tools/builtin/shell.js +43 -0
- package/dist/tools/builtin/web.d.ts +3 -0
- package/dist/tools/builtin/web.js +37 -0
- package/dist/tools/mcp-client.d.ts +24 -0
- package/dist/tools/mcp-client.js +119 -0
- package/dist/traces/index.d.ts +49 -0
- package/dist/traces/index.js +102 -0
- package/docs/.vitepress/config.ts +103 -103
- package/docs/api/cli.md +48 -48
- package/docs/api/oad-schema.md +64 -64
- package/docs/api/sdk.md +80 -80
- package/docs/guide/concepts.md +51 -51
- package/docs/guide/configuration.md +79 -79
- package/docs/guide/deployment.md +42 -42
- package/docs/guide/getting-started.md +44 -44
- package/docs/guide/templates.md +28 -28
- package/docs/guide/testing.md +84 -84
- package/docs/index.md +27 -27
- package/docs/zh/api/cli.md +54 -54
- package/docs/zh/api/oad-schema.md +87 -87
- package/docs/zh/api/sdk.md +102 -102
- package/docs/zh/guide/concepts.md +104 -104
- package/docs/zh/guide/configuration.md +135 -135
- package/docs/zh/guide/deployment.md +81 -81
- package/docs/zh/guide/getting-started.md +82 -82
- package/docs/zh/guide/templates.md +84 -84
- package/docs/zh/guide/testing.md +88 -88
- package/docs/zh/index.md +27 -27
- package/examples/README.md +22 -0
- package/examples/basic-agent.ts +90 -0
- package/examples/brain-integration.ts +71 -0
- package/examples/customer-service-demo/README.md +90 -90
- package/examples/customer-service-demo/oad.yaml +107 -107
- package/examples/multi-channel.ts +74 -0
- package/package.json +1 -1
- package/src/analytics/index.ts +66 -66
- package/src/channels/discord.ts +192 -192
- package/src/channels/email.ts +177 -177
- package/src/channels/feishu.ts +236 -236
- package/src/channels/index.ts +15 -15
- package/src/channels/slack.ts +217 -160
- package/src/channels/telegram.ts +155 -33
- package/src/channels/voice.ts +106 -106
- package/src/channels/web.ts +38 -2
- package/src/channels/webhook.ts +199 -199
- package/src/channels/websocket.ts +87 -87
- package/src/channels/wechat.ts +149 -149
- package/src/cli.ts +697 -63
- package/src/core/a2a.ts +143 -143
- package/src/core/agent.ts +146 -3
- package/src/core/analytics-engine.ts +186 -186
- package/src/core/auth.ts +57 -57
- package/src/core/cache.ts +141 -141
- package/src/core/compose.ts +77 -77
- package/src/core/config.ts +14 -14
- package/src/core/errors.ts +148 -148
- package/src/core/hitl.ts +138 -138
- package/src/core/logger.ts +57 -57
- package/src/core/orchestrator.ts +215 -215
- package/src/core/performance.ts +187 -187
- package/src/core/rate-limiter.ts +128 -128
- package/src/core/room.ts +109 -109
- package/src/core/runtime.ts +230 -152
- package/src/core/sandbox.ts +101 -101
- package/src/core/scheduler.ts +187 -0
- package/src/core/security.ts +171 -171
- package/src/core/subagent.ts +98 -0
- package/src/core/types.ts +68 -68
- package/src/core/versioning.ts +106 -106
- package/src/core/watch.ts +178 -178
- package/src/core/workflow.ts +235 -235
- package/src/daemon.ts +96 -0
- package/src/deploy/hermes.ts +156 -156
- package/src/deploy/openclaw.ts +190 -200
- package/src/i18n/index.ts +216 -216
- package/src/index.ts +14 -10
- package/src/memory/deepbrain.ts +108 -108
- package/src/memory/index.ts +34 -34
- package/src/plugins/index.ts +208 -208
- package/src/providers/index.ts +354 -331
- package/src/schema/oad.ts +14 -2
- package/src/skills/auto-learn.ts +262 -0
- package/src/skills/base.ts +16 -16
- package/src/skills/document.ts +100 -100
- package/src/skills/http.ts +35 -35
- package/src/skills/index.ts +27 -27
- package/src/skills/scheduler.ts +80 -80
- package/src/skills/webhook-trigger.ts +59 -59
- package/src/templates/code-reviewer.ts +30 -34
- package/src/templates/customer-service.ts +76 -80
- package/src/templates/data-analyst.ts +66 -70
- package/src/templates/executive-assistant.ts +71 -71
- package/src/templates/financial-advisor.ts +60 -60
- package/src/templates/knowledge-base.ts +27 -31
- package/src/templates/legal-assistant.ts +71 -71
- package/src/templates/sales-assistant.ts +75 -79
- package/src/templates/teacher.ts +75 -79
- package/src/testing/index.ts +181 -181
- package/src/tools/builtin/datetime.ts +41 -0
- package/src/tools/builtin/file.ts +107 -0
- package/src/tools/builtin/index.ts +28 -0
- package/src/tools/builtin/shell.ts +43 -0
- package/src/tools/builtin/web.ts +35 -0
- package/src/tools/calculator.ts +73 -73
- package/src/tools/datetime.ts +149 -149
- package/src/tools/json-transform.ts +187 -187
- package/src/tools/mcp-client.ts +131 -0
- package/src/tools/mcp.ts +76 -76
- package/src/tools/text-analysis.ts +116 -116
- package/src/traces/index.ts +132 -0
- package/templates/Dockerfile +15 -15
- package/templates/code-reviewer/README.md +27 -27
- package/templates/code-reviewer/oad.yaml +41 -41
- package/templates/customer-service/README.md +22 -22
- package/templates/customer-service/oad.yaml +36 -36
- package/templates/docker-compose.yml +21 -21
- package/templates/ecommerce-assistant/README.md +45 -45
- package/templates/ecommerce-assistant/oad.yaml +47 -47
- package/templates/knowledge-base/README.md +28 -28
- package/templates/knowledge-base/oad.yaml +38 -38
- package/templates/sales-assistant/README.md +26 -26
- package/templates/sales-assistant/oad.yaml +43 -43
- package/templates/tech-support/README.md +43 -43
- package/templates/tech-support/oad.yaml +45 -45
- package/test-agent/Dockerfile +9 -0
- package/test-agent/README.md +50 -0
- package/test-agent/agent.yaml +23 -0
- package/test-agent/docker-compose.yml +11 -0
- package/test-agent/oad.yaml +31 -0
- package/test-agent/package-lock.json +1492 -0
- package/test-agent/package.json +18 -0
- package/test-agent/src/index.ts +24 -0
- package/test-agent/src/skills/echo.ts +15 -0
- package/test-agent/tsconfig.json +25 -0
- package/tests/a2a.test.ts +66 -66
- package/tests/agent.test.ts +72 -72
- package/tests/analytics.test.ts +50 -50
- package/tests/auto-learn.test.ts +105 -0
- package/tests/builtin-tools.test.ts +83 -0
- package/tests/channel.test.ts +39 -39
- package/tests/cli.test.ts +46 -0
- package/tests/e2e.test.ts +134 -134
- package/tests/errors.test.ts +83 -83
- package/tests/hitl.test.ts +71 -71
- package/tests/i18n.test.ts +41 -41
- package/tests/mcp.test.ts +54 -54
- package/tests/oad.test.ts +68 -68
- package/tests/performance.test.ts +115 -115
- package/tests/plugin.test.ts +74 -74
- package/tests/room.test.ts +106 -106
- package/tests/runtime.test.ts +42 -42
- package/tests/sandbox.test.ts +46 -46
- package/tests/security.test.ts +60 -60
- package/tests/subagent.test.ts +130 -0
- package/tests/telegram-discord.test.ts +60 -0
- package/tests/templates.test.ts +77 -77
- package/tests/v070.test.ts +76 -76
- package/tests/versioning.test.ts +75 -75
- package/tests/voice.test.ts +61 -61
- package/tests/webhook.test.ts +29 -29
- package/tests/workflow.test.ts +143 -143
- package/tsconfig.json +19 -19
- package/vitest.config.ts +9 -9
- package/dist/core/dashboard.d.ts +0 -35
- package/dist/core/dashboard.js +0 -157
- package/dist/core/priority.d.ts +0 -52
- package/dist/core/priority.js +0 -102
- package/src/core/dashboard.ts +0 -219
- package/src/core/priority.ts +0 -140
- package/src/dtv/data.ts +0 -29
- package/src/dtv/trust.ts +0 -43
- package/src/dtv/value.ts +0 -47
- package/src/marketplace/index.ts +0 -223
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OPC Agent Traces — Structured logging for agent actions.
|
|
3
|
+
*
|
|
4
|
+
* Collects traces that can be fed to DeepBrain's learn() API.
|
|
5
|
+
* Inspired by OpenTelemetry spans.
|
|
6
|
+
*/
|
|
7
|
+
export interface Span {
|
|
8
|
+
traceId: string;
|
|
9
|
+
spanId: string;
|
|
10
|
+
name: string;
|
|
11
|
+
startTime: Date;
|
|
12
|
+
endTime?: Date;
|
|
13
|
+
attributes: Record<string, string | number | boolean>;
|
|
14
|
+
events: SpanEvent[];
|
|
15
|
+
status: 'ok' | 'error' | 'unset';
|
|
16
|
+
}
|
|
17
|
+
export interface SpanEvent {
|
|
18
|
+
name: string;
|
|
19
|
+
timestamp: Date;
|
|
20
|
+
attributes?: Record<string, string | number | boolean>;
|
|
21
|
+
}
|
|
22
|
+
export interface TraceExporter {
|
|
23
|
+
export(spans: Span[]): Promise<void>;
|
|
24
|
+
}
|
|
25
|
+
/** In-memory buffer that holds spans until flushed */
|
|
26
|
+
export declare class TraceCollector {
|
|
27
|
+
private spans;
|
|
28
|
+
private exporters;
|
|
29
|
+
private maxBufferSize;
|
|
30
|
+
constructor(maxBufferSize?: number);
|
|
31
|
+
addExporter(exporter: TraceExporter): void;
|
|
32
|
+
startSpan(name: string, attributes?: Record<string, string | number | boolean>): Span;
|
|
33
|
+
endSpan(span: Span, status?: 'ok' | 'error'): void;
|
|
34
|
+
addEvent(span: Span, name: string, attributes?: Record<string, string | number | boolean>): void;
|
|
35
|
+
flush(): Promise<number>;
|
|
36
|
+
getBufferedSpans(): readonly Span[];
|
|
37
|
+
get bufferedCount(): number;
|
|
38
|
+
}
|
|
39
|
+
/** Console exporter for development */
|
|
40
|
+
export declare class ConsoleExporter implements TraceExporter {
|
|
41
|
+
export(spans: Span[]): Promise<void>;
|
|
42
|
+
}
|
|
43
|
+
/** DeepBrain exporter — sends traces to DeepBrain learn() */
|
|
44
|
+
export declare class DeepBrainExporter implements TraceExporter {
|
|
45
|
+
private learnEndpoint;
|
|
46
|
+
constructor(deepbrainUrl?: string);
|
|
47
|
+
export(spans: Span[]): Promise<void>;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* OPC Agent Traces — Structured logging for agent actions.
|
|
4
|
+
*
|
|
5
|
+
* Collects traces that can be fed to DeepBrain's learn() API.
|
|
6
|
+
* Inspired by OpenTelemetry spans.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.DeepBrainExporter = exports.ConsoleExporter = exports.TraceCollector = void 0;
|
|
10
|
+
/** In-memory buffer that holds spans until flushed */
|
|
11
|
+
class TraceCollector {
|
|
12
|
+
spans = [];
|
|
13
|
+
exporters = [];
|
|
14
|
+
maxBufferSize;
|
|
15
|
+
constructor(maxBufferSize = 100) {
|
|
16
|
+
this.maxBufferSize = maxBufferSize;
|
|
17
|
+
}
|
|
18
|
+
addExporter(exporter) {
|
|
19
|
+
this.exporters.push(exporter);
|
|
20
|
+
}
|
|
21
|
+
startSpan(name, attributes = {}) {
|
|
22
|
+
const span = {
|
|
23
|
+
traceId: crypto.randomUUID(),
|
|
24
|
+
spanId: crypto.randomUUID().slice(0, 16),
|
|
25
|
+
name,
|
|
26
|
+
startTime: new Date(),
|
|
27
|
+
attributes,
|
|
28
|
+
events: [],
|
|
29
|
+
status: 'unset',
|
|
30
|
+
};
|
|
31
|
+
this.spans.push(span);
|
|
32
|
+
if (this.spans.length >= this.maxBufferSize) {
|
|
33
|
+
this.flush().catch(() => { }); // Best effort
|
|
34
|
+
}
|
|
35
|
+
return span;
|
|
36
|
+
}
|
|
37
|
+
endSpan(span, status = 'ok') {
|
|
38
|
+
span.endTime = new Date();
|
|
39
|
+
span.status = status;
|
|
40
|
+
}
|
|
41
|
+
addEvent(span, name, attributes) {
|
|
42
|
+
span.events.push({ name, timestamp: new Date(), attributes });
|
|
43
|
+
}
|
|
44
|
+
async flush() {
|
|
45
|
+
const toExport = [...this.spans];
|
|
46
|
+
this.spans = [];
|
|
47
|
+
for (const exporter of this.exporters) {
|
|
48
|
+
await exporter.export(toExport);
|
|
49
|
+
}
|
|
50
|
+
return toExport.length;
|
|
51
|
+
}
|
|
52
|
+
getBufferedSpans() {
|
|
53
|
+
return this.spans;
|
|
54
|
+
}
|
|
55
|
+
get bufferedCount() {
|
|
56
|
+
return this.spans.length;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.TraceCollector = TraceCollector;
|
|
60
|
+
/** Console exporter for development */
|
|
61
|
+
class ConsoleExporter {
|
|
62
|
+
async export(spans) {
|
|
63
|
+
for (const span of spans) {
|
|
64
|
+
const duration = span.endTime
|
|
65
|
+
? `${span.endTime.getTime() - span.startTime.getTime()}ms`
|
|
66
|
+
: 'ongoing';
|
|
67
|
+
console.log(`[TRACE] ${span.name} (${duration}) [${span.status}]`);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
exports.ConsoleExporter = ConsoleExporter;
|
|
72
|
+
/** DeepBrain exporter — sends traces to DeepBrain learn() */
|
|
73
|
+
class DeepBrainExporter {
|
|
74
|
+
learnEndpoint;
|
|
75
|
+
constructor(deepbrainUrl = 'http://localhost:3333') {
|
|
76
|
+
this.learnEndpoint = `${deepbrainUrl}/api/learn`;
|
|
77
|
+
}
|
|
78
|
+
async export(spans) {
|
|
79
|
+
for (const span of spans) {
|
|
80
|
+
try {
|
|
81
|
+
await fetch(this.learnEndpoint, {
|
|
82
|
+
method: 'POST',
|
|
83
|
+
headers: { 'Content-Type': 'application/json' },
|
|
84
|
+
body: JSON.stringify({
|
|
85
|
+
action: span.name,
|
|
86
|
+
result: span.status === 'ok' ? 'success' : 'error',
|
|
87
|
+
context: {
|
|
88
|
+
...span.attributes,
|
|
89
|
+
duration: span.endTime ? span.endTime.getTime() - span.startTime.getTime() : null,
|
|
90
|
+
events: span.events.map(e => e.name),
|
|
91
|
+
},
|
|
92
|
+
}),
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
catch {
|
|
96
|
+
// Best effort — don't break agent if brain is down
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
exports.DeepBrainExporter = DeepBrainExporter;
|
|
102
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -1,103 +1,103 @@
|
|
|
1
|
-
import { defineConfig } from 'vitepress';
|
|
2
|
-
|
|
3
|
-
export default defineConfig({
|
|
4
|
-
title: 'OPC Agent',
|
|
5
|
-
description: 'Open Agent Framework - Build, test, and run AI Agents for business workstations',
|
|
6
|
-
|
|
7
|
-
locales: {
|
|
8
|
-
root: {
|
|
9
|
-
label: 'English',
|
|
10
|
-
lang: 'en',
|
|
11
|
-
themeConfig: {
|
|
12
|
-
nav: [
|
|
13
|
-
{ text: 'Guide', link: '/guide/getting-started' },
|
|
14
|
-
{ text: 'API', link: '/api/oad-schema' },
|
|
15
|
-
{ text: 'GitHub', link: 'https://github.com/Deepleaper/opc-agent' },
|
|
16
|
-
],
|
|
17
|
-
sidebar: {
|
|
18
|
-
'/guide/': [
|
|
19
|
-
{
|
|
20
|
-
text: 'Introduction',
|
|
21
|
-
items: [
|
|
22
|
-
{ text: 'Getting Started', link: '/guide/getting-started' },
|
|
23
|
-
{ text: 'Core Concepts', link: '/guide/concepts' },
|
|
24
|
-
],
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
text: 'Usage',
|
|
28
|
-
items: [
|
|
29
|
-
{ text: 'Templates', link: '/guide/templates' },
|
|
30
|
-
{ text: 'Configuration', link: '/guide/configuration' },
|
|
31
|
-
{ text: 'Testing', link: '/guide/testing' },
|
|
32
|
-
{ text: 'Deployment', link: '/guide/deployment' },
|
|
33
|
-
],
|
|
34
|
-
},
|
|
35
|
-
],
|
|
36
|
-
'/api/': [
|
|
37
|
-
{
|
|
38
|
-
text: 'Reference',
|
|
39
|
-
items: [
|
|
40
|
-
{ text: 'OAD Schema', link: '/api/oad-schema' },
|
|
41
|
-
{ text: 'CLI Commands', link: '/api/cli' },
|
|
42
|
-
{ text: 'SDK', link: '/api/sdk' },
|
|
43
|
-
],
|
|
44
|
-
},
|
|
45
|
-
],
|
|
46
|
-
},
|
|
47
|
-
},
|
|
48
|
-
},
|
|
49
|
-
zh: {
|
|
50
|
-
label: '中文',
|
|
51
|
-
lang: 'zh-CN',
|
|
52
|
-
description: '开放智能体框架 — 构建、测试、运行企业级 AI 智能体',
|
|
53
|
-
themeConfig: {
|
|
54
|
-
nav: [
|
|
55
|
-
{ text: '指南', link: '/zh/guide/getting-started' },
|
|
56
|
-
{ text: 'API', link: '/zh/api/oad-schema' },
|
|
57
|
-
{ text: 'GitHub', link: 'https://github.com/Deepleaper/opc-agent' },
|
|
58
|
-
],
|
|
59
|
-
sidebar: {
|
|
60
|
-
'/zh/guide/': [
|
|
61
|
-
{
|
|
62
|
-
text: '入门',
|
|
63
|
-
items: [
|
|
64
|
-
{ text: '快速开始', link: '/zh/guide/getting-started' },
|
|
65
|
-
{ text: '核心概念', link: '/zh/guide/concepts' },
|
|
66
|
-
],
|
|
67
|
-
},
|
|
68
|
-
{
|
|
69
|
-
text: '使用',
|
|
70
|
-
items: [
|
|
71
|
-
{ text: '模板', link: '/zh/guide/templates' },
|
|
72
|
-
{ text: '配置', link: '/zh/guide/configuration' },
|
|
73
|
-
{ text: '测试', link: '/zh/guide/testing' },
|
|
74
|
-
{ text: '部署', link: '/zh/guide/deployment' },
|
|
75
|
-
],
|
|
76
|
-
},
|
|
77
|
-
],
|
|
78
|
-
'/zh/api/': [
|
|
79
|
-
{
|
|
80
|
-
text: '参考',
|
|
81
|
-
items: [
|
|
82
|
-
{ text: 'OAD Schema', link: '/zh/api/oad-schema' },
|
|
83
|
-
{ text: 'CLI 命令', link: '/zh/api/cli' },
|
|
84
|
-
{ text: 'SDK', link: '/zh/api/sdk' },
|
|
85
|
-
],
|
|
86
|
-
},
|
|
87
|
-
],
|
|
88
|
-
},
|
|
89
|
-
},
|
|
90
|
-
},
|
|
91
|
-
},
|
|
92
|
-
|
|
93
|
-
themeConfig: {
|
|
94
|
-
logo: '/logo.svg',
|
|
95
|
-
socialLinks: [
|
|
96
|
-
{ icon: 'github', link: 'https://github.com/Deepleaper/opc-agent' },
|
|
97
|
-
],
|
|
98
|
-
footer: {
|
|
99
|
-
message: 'Released under the Apache-2.0 License.',
|
|
100
|
-
copyright: 'Copyright © 2025 Deepleaper 跃盟科技',
|
|
101
|
-
},
|
|
102
|
-
},
|
|
103
|
-
});
|
|
1
|
+
import { defineConfig } from 'vitepress';
|
|
2
|
+
|
|
3
|
+
export default defineConfig({
|
|
4
|
+
title: 'OPC Agent',
|
|
5
|
+
description: 'Open Agent Framework - Build, test, and run AI Agents for business workstations',
|
|
6
|
+
|
|
7
|
+
locales: {
|
|
8
|
+
root: {
|
|
9
|
+
label: 'English',
|
|
10
|
+
lang: 'en',
|
|
11
|
+
themeConfig: {
|
|
12
|
+
nav: [
|
|
13
|
+
{ text: 'Guide', link: '/guide/getting-started' },
|
|
14
|
+
{ text: 'API', link: '/api/oad-schema' },
|
|
15
|
+
{ text: 'GitHub', link: 'https://github.com/Deepleaper/opc-agent' },
|
|
16
|
+
],
|
|
17
|
+
sidebar: {
|
|
18
|
+
'/guide/': [
|
|
19
|
+
{
|
|
20
|
+
text: 'Introduction',
|
|
21
|
+
items: [
|
|
22
|
+
{ text: 'Getting Started', link: '/guide/getting-started' },
|
|
23
|
+
{ text: 'Core Concepts', link: '/guide/concepts' },
|
|
24
|
+
],
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
text: 'Usage',
|
|
28
|
+
items: [
|
|
29
|
+
{ text: 'Templates', link: '/guide/templates' },
|
|
30
|
+
{ text: 'Configuration', link: '/guide/configuration' },
|
|
31
|
+
{ text: 'Testing', link: '/guide/testing' },
|
|
32
|
+
{ text: 'Deployment', link: '/guide/deployment' },
|
|
33
|
+
],
|
|
34
|
+
},
|
|
35
|
+
],
|
|
36
|
+
'/api/': [
|
|
37
|
+
{
|
|
38
|
+
text: 'Reference',
|
|
39
|
+
items: [
|
|
40
|
+
{ text: 'OAD Schema', link: '/api/oad-schema' },
|
|
41
|
+
{ text: 'CLI Commands', link: '/api/cli' },
|
|
42
|
+
{ text: 'SDK', link: '/api/sdk' },
|
|
43
|
+
],
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
zh: {
|
|
50
|
+
label: '中文',
|
|
51
|
+
lang: 'zh-CN',
|
|
52
|
+
description: '开放智能体框架 — 构建、测试、运行企业级 AI 智能体',
|
|
53
|
+
themeConfig: {
|
|
54
|
+
nav: [
|
|
55
|
+
{ text: '指南', link: '/zh/guide/getting-started' },
|
|
56
|
+
{ text: 'API', link: '/zh/api/oad-schema' },
|
|
57
|
+
{ text: 'GitHub', link: 'https://github.com/Deepleaper/opc-agent' },
|
|
58
|
+
],
|
|
59
|
+
sidebar: {
|
|
60
|
+
'/zh/guide/': [
|
|
61
|
+
{
|
|
62
|
+
text: '入门',
|
|
63
|
+
items: [
|
|
64
|
+
{ text: '快速开始', link: '/zh/guide/getting-started' },
|
|
65
|
+
{ text: '核心概念', link: '/zh/guide/concepts' },
|
|
66
|
+
],
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
text: '使用',
|
|
70
|
+
items: [
|
|
71
|
+
{ text: '模板', link: '/zh/guide/templates' },
|
|
72
|
+
{ text: '配置', link: '/zh/guide/configuration' },
|
|
73
|
+
{ text: '测试', link: '/zh/guide/testing' },
|
|
74
|
+
{ text: '部署', link: '/zh/guide/deployment' },
|
|
75
|
+
],
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
'/zh/api/': [
|
|
79
|
+
{
|
|
80
|
+
text: '参考',
|
|
81
|
+
items: [
|
|
82
|
+
{ text: 'OAD Schema', link: '/zh/api/oad-schema' },
|
|
83
|
+
{ text: 'CLI 命令', link: '/zh/api/cli' },
|
|
84
|
+
{ text: 'SDK', link: '/zh/api/sdk' },
|
|
85
|
+
],
|
|
86
|
+
},
|
|
87
|
+
],
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
|
|
93
|
+
themeConfig: {
|
|
94
|
+
logo: '/logo.svg',
|
|
95
|
+
socialLinks: [
|
|
96
|
+
{ icon: 'github', link: 'https://github.com/Deepleaper/opc-agent' },
|
|
97
|
+
],
|
|
98
|
+
footer: {
|
|
99
|
+
message: 'Released under the Apache-2.0 License.',
|
|
100
|
+
copyright: 'Copyright © 2025 Deepleaper 跃盟科技',
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
});
|
package/docs/api/cli.md
CHANGED
|
@@ -1,48 +1,48 @@
|
|
|
1
|
-
# CLI Commands
|
|
2
|
-
|
|
3
|
-
## Reference
|
|
4
|
-
|
|
5
|
-
| Command | Description |
|
|
6
|
-
|---------|-------------|
|
|
7
|
-
| `opc init [name]` | Initialize a new agent project |
|
|
8
|
-
| `opc run` | Start agent with web server |
|
|
9
|
-
| `opc chat` | Interactive CLI chat |
|
|
10
|
-
| `opc test` | Run agent tests |
|
|
11
|
-
| `opc analytics` | Show usage analytics |
|
|
12
|
-
| `opc info` | Show agent info from OAD |
|
|
13
|
-
| `opc build` | Validate OAD |
|
|
14
|
-
| `opc dev` | Hot-reload development mode |
|
|
15
|
-
| `opc create <name>` | Create agent from template |
|
|
16
|
-
| `opc deploy` | Deploy to OpenClaw or Hermes |
|
|
17
|
-
| `opc publish` | Package for distribution |
|
|
18
|
-
| `opc install <source>` | Install agent from package |
|
|
19
|
-
| `opc search <query>` | Search OPC Registry |
|
|
20
|
-
| `opc stats` | Show runtime stats |
|
|
21
|
-
| `opc kb add <file>` | Add file to knowledge base |
|
|
22
|
-
| `opc kb search <query>` | Search knowledge base |
|
|
23
|
-
| `opc tool list` | List MCP tools |
|
|
24
|
-
| `opc workflow run <name>` | Run a workflow |
|
|
25
|
-
| `opc version-mgmt list` | List saved versions |
|
|
26
|
-
|
|
27
|
-
## Common Options
|
|
28
|
-
|
|
29
|
-
- `-f, --file <file>` — OAD file path (default: `oad.yaml`)
|
|
30
|
-
- `-t, --template <name>` — Template name
|
|
31
|
-
- `-p, --port <port>` — Port override
|
|
32
|
-
- `--json` — JSON output (for test/analytics)
|
|
33
|
-
|
|
34
|
-
## Examples
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
# Create a new project
|
|
38
|
-
opc init my-bot -t teacher
|
|
39
|
-
|
|
40
|
-
# Run tests
|
|
41
|
-
opc test --json
|
|
42
|
-
|
|
43
|
-
# View analytics
|
|
44
|
-
opc analytics
|
|
45
|
-
|
|
46
|
-
# Deploy
|
|
47
|
-
opc deploy --target openclaw --install
|
|
48
|
-
```
|
|
1
|
+
# CLI Commands
|
|
2
|
+
|
|
3
|
+
## Reference
|
|
4
|
+
|
|
5
|
+
| Command | Description |
|
|
6
|
+
|---------|-------------|
|
|
7
|
+
| `opc init [name]` | Initialize a new agent project |
|
|
8
|
+
| `opc run` | Start agent with web server |
|
|
9
|
+
| `opc chat` | Interactive CLI chat |
|
|
10
|
+
| `opc test` | Run agent tests |
|
|
11
|
+
| `opc analytics` | Show usage analytics |
|
|
12
|
+
| `opc info` | Show agent info from OAD |
|
|
13
|
+
| `opc build` | Validate OAD |
|
|
14
|
+
| `opc dev` | Hot-reload development mode |
|
|
15
|
+
| `opc create <name>` | Create agent from template |
|
|
16
|
+
| `opc deploy` | Deploy to OpenClaw or Hermes |
|
|
17
|
+
| `opc publish` | Package for distribution |
|
|
18
|
+
| `opc install <source>` | Install agent from package |
|
|
19
|
+
| `opc search <query>` | Search OPC Registry |
|
|
20
|
+
| `opc stats` | Show runtime stats |
|
|
21
|
+
| `opc kb add <file>` | Add file to knowledge base |
|
|
22
|
+
| `opc kb search <query>` | Search knowledge base |
|
|
23
|
+
| `opc tool list` | List MCP tools |
|
|
24
|
+
| `opc workflow run <name>` | Run a workflow |
|
|
25
|
+
| `opc version-mgmt list` | List saved versions |
|
|
26
|
+
|
|
27
|
+
## Common Options
|
|
28
|
+
|
|
29
|
+
- `-f, --file <file>` — OAD file path (default: `oad.yaml`)
|
|
30
|
+
- `-t, --template <name>` — Template name
|
|
31
|
+
- `-p, --port <port>` — Port override
|
|
32
|
+
- `--json` — JSON output (for test/analytics)
|
|
33
|
+
|
|
34
|
+
## Examples
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
# Create a new project
|
|
38
|
+
opc init my-bot -t teacher
|
|
39
|
+
|
|
40
|
+
# Run tests
|
|
41
|
+
opc test --json
|
|
42
|
+
|
|
43
|
+
# View analytics
|
|
44
|
+
opc analytics
|
|
45
|
+
|
|
46
|
+
# Deploy
|
|
47
|
+
opc deploy --target openclaw --install
|
|
48
|
+
```
|
package/docs/api/oad-schema.md
CHANGED
|
@@ -1,64 +1,64 @@
|
|
|
1
|
-
# OAD Schema v1 Specification
|
|
2
|
-
|
|
3
|
-
**OAD** (Open Agent Definition) is a declarative YAML/JSON format for defining AI agents.
|
|
4
|
-
|
|
5
|
-
## Full Schema
|
|
6
|
-
|
|
7
|
-
```yaml
|
|
8
|
-
apiVersion: opc/v1 # Required. Must be "opc/v1"
|
|
9
|
-
kind: Agent # Required. Must be "Agent"
|
|
10
|
-
|
|
11
|
-
metadata:
|
|
12
|
-
name: string # Required. Agent identifier
|
|
13
|
-
version: string # Semver. Default: "1.0.0"
|
|
14
|
-
description: string # Optional. Human-readable description
|
|
15
|
-
author: string # Optional. Author name
|
|
16
|
-
license: string # Default: "Apache-2.0"
|
|
17
|
-
marketplace: # Optional. Marketplace settings
|
|
18
|
-
certified: boolean # Default: false
|
|
19
|
-
category: string # e.g., "customer-service"
|
|
20
|
-
|
|
21
|
-
spec:
|
|
22
|
-
provider: # LLM provider configuration
|
|
23
|
-
default: string # Default provider. Default: "deepseek"
|
|
24
|
-
allowed: string[] # Allowed providers. Default: ["openai", "deepseek", "qwen"]
|
|
25
|
-
model: string # Model name. Default: "deepseek-chat"
|
|
26
|
-
systemPrompt: string # System prompt for the agent
|
|
27
|
-
|
|
28
|
-
skills: # List of skills
|
|
29
|
-
- name: string # Skill identifier
|
|
30
|
-
description: string # What the skill does
|
|
31
|
-
config: object # Optional skill-specific config
|
|
32
|
-
|
|
33
|
-
channels: # Communication channels
|
|
34
|
-
- type: web|websocket|cli
|
|
35
|
-
port: number # Port for web channels
|
|
36
|
-
config: object # Optional channel config
|
|
37
|
-
|
|
38
|
-
memory:
|
|
39
|
-
shortTerm: boolean # Enable conversation memory. Default: true
|
|
40
|
-
longTerm: boolean # Enable persistent memory. Default: false
|
|
41
|
-
provider: string # Memory backend (optional)
|
|
42
|
-
|
|
43
|
-
dtv:
|
|
44
|
-
trust:
|
|
45
|
-
level: sandbox|verified|certified|listed # Default: "sandbox"
|
|
46
|
-
value:
|
|
47
|
-
metrics: string[] # Metrics to track. Default: []
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
## Validation
|
|
51
|
-
|
|
52
|
-
OAD files are validated using Zod schemas. Use the CLI to validate:
|
|
53
|
-
|
|
54
|
-
```bash
|
|
55
|
-
opc build -f oad.yaml
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
Or programmatically:
|
|
59
|
-
|
|
60
|
-
```typescript
|
|
61
|
-
import { validateOAD } from 'opc-agent';
|
|
62
|
-
|
|
63
|
-
const config = validateOAD(yamlData);
|
|
64
|
-
```
|
|
1
|
+
# OAD Schema v1 Specification
|
|
2
|
+
|
|
3
|
+
**OAD** (Open Agent Definition) is a declarative YAML/JSON format for defining AI agents.
|
|
4
|
+
|
|
5
|
+
## Full Schema
|
|
6
|
+
|
|
7
|
+
```yaml
|
|
8
|
+
apiVersion: opc/v1 # Required. Must be "opc/v1"
|
|
9
|
+
kind: Agent # Required. Must be "Agent"
|
|
10
|
+
|
|
11
|
+
metadata:
|
|
12
|
+
name: string # Required. Agent identifier
|
|
13
|
+
version: string # Semver. Default: "1.0.0"
|
|
14
|
+
description: string # Optional. Human-readable description
|
|
15
|
+
author: string # Optional. Author name
|
|
16
|
+
license: string # Default: "Apache-2.0"
|
|
17
|
+
marketplace: # Optional. Marketplace settings
|
|
18
|
+
certified: boolean # Default: false
|
|
19
|
+
category: string # e.g., "customer-service"
|
|
20
|
+
|
|
21
|
+
spec:
|
|
22
|
+
provider: # LLM provider configuration
|
|
23
|
+
default: string # Default provider. Default: "deepseek"
|
|
24
|
+
allowed: string[] # Allowed providers. Default: ["openai", "deepseek", "qwen"]
|
|
25
|
+
model: string # Model name. Default: "deepseek-chat"
|
|
26
|
+
systemPrompt: string # System prompt for the agent
|
|
27
|
+
|
|
28
|
+
skills: # List of skills
|
|
29
|
+
- name: string # Skill identifier
|
|
30
|
+
description: string # What the skill does
|
|
31
|
+
config: object # Optional skill-specific config
|
|
32
|
+
|
|
33
|
+
channels: # Communication channels
|
|
34
|
+
- type: web|websocket|cli
|
|
35
|
+
port: number # Port for web channels
|
|
36
|
+
config: object # Optional channel config
|
|
37
|
+
|
|
38
|
+
memory:
|
|
39
|
+
shortTerm: boolean # Enable conversation memory. Default: true
|
|
40
|
+
longTerm: boolean # Enable persistent memory. Default: false
|
|
41
|
+
provider: string # Memory backend (optional)
|
|
42
|
+
|
|
43
|
+
dtv:
|
|
44
|
+
trust:
|
|
45
|
+
level: sandbox|verified|certified|listed # Default: "sandbox"
|
|
46
|
+
value:
|
|
47
|
+
metrics: string[] # Metrics to track. Default: []
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Validation
|
|
51
|
+
|
|
52
|
+
OAD files are validated using Zod schemas. Use the CLI to validate:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
opc build -f oad.yaml
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Or programmatically:
|
|
59
|
+
|
|
60
|
+
```typescript
|
|
61
|
+
import { validateOAD } from 'opc-agent';
|
|
62
|
+
|
|
63
|
+
const config = validateOAD(yamlData);
|
|
64
|
+
```
|