opc-agent 1.3.1 → 1.3.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.
Files changed (160) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/CONTRIBUTING.md +75 -75
  3. package/README.md +358 -235
  4. package/README.zh-CN.md +415 -415
  5. package/dist/cli.js +34 -118
  6. package/dist/core/dashboard.d.ts +35 -0
  7. package/dist/core/dashboard.js +157 -0
  8. package/dist/core/priority.d.ts +52 -0
  9. package/dist/core/priority.js +102 -0
  10. package/dist/deploy/hermes.js +22 -22
  11. package/dist/deploy/openclaw.js +40 -31
  12. package/dist/index.d.ts +10 -3
  13. package/dist/index.js +15 -6
  14. package/dist/schema/oad.d.ts +2 -1
  15. package/dist/templates/code-reviewer.d.ts +8 -0
  16. package/dist/templates/code-reviewer.js +9 -5
  17. package/dist/templates/customer-service.d.ts +8 -0
  18. package/dist/templates/customer-service.js +6 -2
  19. package/dist/templates/data-analyst.d.ts +8 -0
  20. package/dist/templates/data-analyst.js +9 -5
  21. package/dist/templates/knowledge-base.d.ts +8 -0
  22. package/dist/templates/knowledge-base.js +6 -2
  23. package/dist/templates/sales-assistant.d.ts +8 -0
  24. package/dist/templates/sales-assistant.js +8 -4
  25. package/dist/templates/teacher.d.ts +8 -0
  26. package/dist/templates/teacher.js +10 -6
  27. package/docs/.vitepress/config.ts +103 -103
  28. package/docs/api/cli.md +48 -48
  29. package/docs/api/oad-schema.md +64 -64
  30. package/docs/api/sdk.md +80 -80
  31. package/docs/guide/concepts.md +51 -51
  32. package/docs/guide/configuration.md +79 -79
  33. package/docs/guide/deployment.md +42 -42
  34. package/docs/guide/getting-started.md +44 -44
  35. package/docs/guide/templates.md +28 -28
  36. package/docs/guide/testing.md +84 -84
  37. package/docs/index.md +27 -27
  38. package/docs/zh/api/cli.md +54 -54
  39. package/docs/zh/api/oad-schema.md +87 -87
  40. package/docs/zh/api/sdk.md +102 -102
  41. package/docs/zh/guide/concepts.md +104 -104
  42. package/docs/zh/guide/configuration.md +135 -135
  43. package/docs/zh/guide/deployment.md +81 -81
  44. package/docs/zh/guide/getting-started.md +82 -82
  45. package/docs/zh/guide/templates.md +84 -84
  46. package/docs/zh/guide/testing.md +88 -88
  47. package/docs/zh/index.md +27 -27
  48. package/examples/customer-service-demo/README.md +90 -90
  49. package/examples/customer-service-demo/oad.yaml +107 -107
  50. package/package.json +1 -1
  51. package/src/analytics/index.ts +66 -66
  52. package/src/channels/discord.ts +192 -192
  53. package/src/channels/email.ts +177 -177
  54. package/src/channels/feishu.ts +236 -236
  55. package/src/channels/index.ts +15 -15
  56. package/src/channels/slack.ts +160 -160
  57. package/src/channels/telegram.ts +90 -90
  58. package/src/channels/voice.ts +106 -106
  59. package/src/channels/webhook.ts +199 -199
  60. package/src/channels/websocket.ts +87 -87
  61. package/src/channels/wechat.ts +149 -149
  62. package/src/cli.ts +32 -124
  63. package/src/core/a2a.ts +143 -143
  64. package/src/core/agent.ts +152 -152
  65. package/src/core/analytics-engine.ts +186 -186
  66. package/src/core/auth.ts +57 -57
  67. package/src/core/cache.ts +141 -141
  68. package/src/core/compose.ts +77 -77
  69. package/src/core/config.ts +14 -14
  70. package/src/core/dashboard.ts +219 -0
  71. package/src/core/errors.ts +148 -148
  72. package/src/core/hitl.ts +138 -138
  73. package/src/core/logger.ts +57 -57
  74. package/src/core/orchestrator.ts +215 -215
  75. package/src/core/performance.ts +187 -187
  76. package/src/core/priority.ts +140 -0
  77. package/src/core/rate-limiter.ts +128 -128
  78. package/src/core/room.ts +109 -109
  79. package/src/core/runtime.ts +152 -152
  80. package/src/core/sandbox.ts +101 -101
  81. package/src/core/security.ts +171 -171
  82. package/src/core/types.ts +68 -68
  83. package/src/core/versioning.ts +106 -106
  84. package/src/core/watch.ts +178 -178
  85. package/src/core/workflow.ts +235 -235
  86. package/src/deploy/hermes.ts +156 -156
  87. package/src/deploy/openclaw.ts +200 -190
  88. package/src/dtv/data.ts +29 -0
  89. package/src/dtv/trust.ts +43 -0
  90. package/src/dtv/value.ts +47 -0
  91. package/src/i18n/index.ts +216 -216
  92. package/src/index.ts +10 -3
  93. package/src/marketplace/index.ts +223 -0
  94. package/src/memory/deepbrain.ts +108 -108
  95. package/src/memory/index.ts +34 -34
  96. package/src/plugins/index.ts +208 -208
  97. package/src/schema/oad.ts +155 -154
  98. package/src/skills/base.ts +16 -16
  99. package/src/skills/document.ts +100 -100
  100. package/src/skills/http.ts +35 -35
  101. package/src/skills/index.ts +27 -27
  102. package/src/skills/scheduler.ts +80 -80
  103. package/src/skills/webhook-trigger.ts +59 -59
  104. package/src/templates/code-reviewer.ts +34 -30
  105. package/src/templates/customer-service.ts +80 -76
  106. package/src/templates/data-analyst.ts +70 -66
  107. package/src/templates/executive-assistant.ts +71 -71
  108. package/src/templates/financial-advisor.ts +60 -60
  109. package/src/templates/knowledge-base.ts +31 -27
  110. package/src/templates/legal-assistant.ts +71 -71
  111. package/src/templates/sales-assistant.ts +79 -75
  112. package/src/templates/teacher.ts +79 -75
  113. package/src/testing/index.ts +181 -181
  114. package/src/tools/calculator.ts +73 -73
  115. package/src/tools/datetime.ts +149 -149
  116. package/src/tools/json-transform.ts +187 -187
  117. package/src/tools/mcp.ts +76 -76
  118. package/src/tools/text-analysis.ts +116 -116
  119. package/templates/Dockerfile +15 -15
  120. package/templates/code-reviewer/README.md +27 -27
  121. package/templates/code-reviewer/oad.yaml +41 -41
  122. package/templates/customer-service/README.md +22 -22
  123. package/templates/customer-service/oad.yaml +36 -36
  124. package/templates/docker-compose.yml +21 -21
  125. package/templates/ecommerce-assistant/README.md +45 -45
  126. package/templates/ecommerce-assistant/oad.yaml +47 -47
  127. package/templates/knowledge-base/README.md +28 -28
  128. package/templates/knowledge-base/oad.yaml +38 -38
  129. package/templates/sales-assistant/README.md +26 -26
  130. package/templates/sales-assistant/oad.yaml +43 -43
  131. package/templates/tech-support/README.md +43 -43
  132. package/templates/tech-support/oad.yaml +45 -45
  133. package/tests/a2a.test.ts +66 -66
  134. package/tests/agent.test.ts +72 -72
  135. package/tests/analytics.test.ts +50 -50
  136. package/tests/channel.test.ts +39 -39
  137. package/tests/e2e.test.ts +134 -134
  138. package/tests/errors.test.ts +83 -83
  139. package/tests/hitl.test.ts +71 -71
  140. package/tests/i18n.test.ts +41 -41
  141. package/tests/mcp.test.ts +54 -54
  142. package/tests/oad.test.ts +68 -68
  143. package/tests/performance.test.ts +115 -115
  144. package/tests/plugin.test.ts +74 -74
  145. package/tests/room.test.ts +106 -106
  146. package/tests/runtime.test.ts +42 -42
  147. package/tests/sandbox.test.ts +46 -46
  148. package/tests/security.test.ts +60 -60
  149. package/tests/templates.test.ts +77 -77
  150. package/tests/v070.test.ts +76 -76
  151. package/tests/versioning.test.ts +75 -75
  152. package/tests/voice.test.ts +61 -61
  153. package/tests/webhook.test.ts +29 -29
  154. package/tests/workflow.test.ts +143 -143
  155. package/tsconfig.json +19 -19
  156. package/vitest.config.ts +9 -9
  157. package/.github/workflows/ci.yml +0 -24
  158. package/dist/traces/index.d.ts +0 -49
  159. package/dist/traces/index.js +0 -102
  160. package/src/traces/index.ts +0 -132
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
+ ```
@@ -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
+ ```
package/docs/api/sdk.md CHANGED
@@ -1,80 +1,80 @@
1
- # SDK Reference
2
-
3
- ## Core Classes
4
-
5
- ### AgentRuntime
6
-
7
- ```typescript
8
- import { AgentRuntime } from 'opc-agent';
9
-
10
- const runtime = new AgentRuntime();
11
- await runtime.loadConfig('oad.yaml');
12
- const agent = await runtime.initialize();
13
- await runtime.start();
14
- ```
15
-
16
- ### AnalyticsEngine
17
-
18
- ```typescript
19
- import { AnalyticsEngine } from 'opc-agent';
20
-
21
- const engine = new AnalyticsEngine('.');
22
- engine.trackMessage('user-1', 250, 100, 50);
23
- engine.trackToolUse('search', true, 120);
24
- const stats = engine.getStats();
25
- ```
26
-
27
- ### RateLimiter
28
-
29
- ```typescript
30
- import { RateLimiter } from 'opc-agent';
31
-
32
- const limiter = new RateLimiter({
33
- userLimit: { maxRequests: 60, windowMs: 60000 },
34
- providerLimit: { maxRequests: 100, windowMs: 60000 },
35
- });
36
-
37
- await limiter.acquire('user-1', 'openai');
38
- ```
39
-
40
- ### LLMCache
41
-
42
- ```typescript
43
- import { LLMCache } from 'opc-agent';
44
-
45
- const cache = new LLMCache({ ttlMs: 3600000 });
46
- const key = LLMCache.makeKey(messages, systemPrompt);
47
- const cached = cache.get(key);
48
- if (!cached) {
49
- const response = await callLLM(messages);
50
- cache.set(key, response);
51
- }
52
- ```
53
-
54
- ### Testing
55
-
56
- ```typescript
57
- import { runTests, formatReport } from 'opc-agent';
58
-
59
- const report = await runTests('oad.yaml');
60
- console.log(formatReport(report));
61
- ```
62
-
63
- ## Templates
64
-
65
- 13 built-in templates:
66
-
67
- | Template | Description |
68
- |----------|-------------|
69
- | `customer-service` | FAQ + human handoff |
70
- | `sales-assistant` | Product Q&A + lead capture |
71
- | `knowledge-base` | RAG with DeepBrain |
72
- | `code-reviewer` | Bug detection + style checks |
73
- | `hr-recruiter` | Resume screening + interviews |
74
- | `project-manager` | Task tracking + meeting notes |
75
- | `content-writer` | Blog + social media + SEO |
76
- | `legal-assistant` | Contract review + compliance |
77
- | `financial-advisor` | Budget + expense tracking |
78
- | `executive-assistant` | Calendar + email + meetings |
79
- | `data-analyst` | Data querying + visualization |
80
- | `teacher` | Lesson plans + quizzes |
1
+ # SDK Reference
2
+
3
+ ## Core Classes
4
+
5
+ ### AgentRuntime
6
+
7
+ ```typescript
8
+ import { AgentRuntime } from 'opc-agent';
9
+
10
+ const runtime = new AgentRuntime();
11
+ await runtime.loadConfig('oad.yaml');
12
+ const agent = await runtime.initialize();
13
+ await runtime.start();
14
+ ```
15
+
16
+ ### AnalyticsEngine
17
+
18
+ ```typescript
19
+ import { AnalyticsEngine } from 'opc-agent';
20
+
21
+ const engine = new AnalyticsEngine('.');
22
+ engine.trackMessage('user-1', 250, 100, 50);
23
+ engine.trackToolUse('search', true, 120);
24
+ const stats = engine.getStats();
25
+ ```
26
+
27
+ ### RateLimiter
28
+
29
+ ```typescript
30
+ import { RateLimiter } from 'opc-agent';
31
+
32
+ const limiter = new RateLimiter({
33
+ userLimit: { maxRequests: 60, windowMs: 60000 },
34
+ providerLimit: { maxRequests: 100, windowMs: 60000 },
35
+ });
36
+
37
+ await limiter.acquire('user-1', 'openai');
38
+ ```
39
+
40
+ ### LLMCache
41
+
42
+ ```typescript
43
+ import { LLMCache } from 'opc-agent';
44
+
45
+ const cache = new LLMCache({ ttlMs: 3600000 });
46
+ const key = LLMCache.makeKey(messages, systemPrompt);
47
+ const cached = cache.get(key);
48
+ if (!cached) {
49
+ const response = await callLLM(messages);
50
+ cache.set(key, response);
51
+ }
52
+ ```
53
+
54
+ ### Testing
55
+
56
+ ```typescript
57
+ import { runTests, formatReport } from 'opc-agent';
58
+
59
+ const report = await runTests('oad.yaml');
60
+ console.log(formatReport(report));
61
+ ```
62
+
63
+ ## Templates
64
+
65
+ 13 built-in templates:
66
+
67
+ | Template | Description |
68
+ |----------|-------------|
69
+ | `customer-service` | FAQ + human handoff |
70
+ | `sales-assistant` | Product Q&A + lead capture |
71
+ | `knowledge-base` | RAG with DeepBrain |
72
+ | `code-reviewer` | Bug detection + style checks |
73
+ | `hr-recruiter` | Resume screening + interviews |
74
+ | `project-manager` | Task tracking + meeting notes |
75
+ | `content-writer` | Blog + social media + SEO |
76
+ | `legal-assistant` | Contract review + compliance |
77
+ | `financial-advisor` | Budget + expense tracking |
78
+ | `executive-assistant` | Calendar + email + meetings |
79
+ | `data-analyst` | Data querying + visualization |
80
+ | `teacher` | Lesson plans + quizzes |
@@ -1,51 +1,51 @@
1
- # Core Concepts
2
-
3
- ## Agent
4
-
5
- An Agent is an autonomous AI entity with a defined lifecycle:
6
-
7
- ```
8
- init → ready → running → stopped
9
- ```
10
-
11
- Each agent has a name, system prompt, skills, channels, and memory.
12
-
13
- ## Skill
14
-
15
- Skills are modular capabilities an agent can use. Each skill:
16
- - Has a `name` and `description`
17
- - Receives the conversation context and current message
18
- - Returns whether it handled the message and with what confidence
19
-
20
- Built-in skills include FAQ lookup and human handoff.
21
-
22
- ## Channel
23
-
24
- Channels are the interfaces through which users interact with agents:
25
- - **Web** — HTTP API with `/chat` endpoint and SSE streaming
26
- - More channels (WebSocket, CLI, Slack) coming soon
27
-
28
- ## Memory
29
-
30
- Agents have two types of memory:
31
- - **Short-term** — Conversation history within a session
32
- - **Long-term** — Persistent knowledge across sessions (coming soon)
33
-
34
- ## DTV (Data / Trust / Value)
35
-
36
- The DTV framework governs agent operations:
37
-
38
- ### Data
39
- Read-only access to business data. Agents can read configurations but cannot modify source systems.
40
-
41
- ### Trust
42
- Progressive trust levels control agent capabilities:
43
- - **sandbox** — No network, limited capabilities
44
- - **verified** — Identity confirmed, basic capabilities
45
- - **certified** — Security audited, full capabilities
46
- - **listed** — Published in OPC marketplace
47
-
48
- ### Value
49
- Metrics tracking for agent performance and ROI:
50
- - Response time, satisfaction scores, resolution rates
51
- - Automated reporting and dashboards
1
+ # Core Concepts
2
+
3
+ ## Agent
4
+
5
+ An Agent is an autonomous AI entity with a defined lifecycle:
6
+
7
+ ```
8
+ init → ready → running → stopped
9
+ ```
10
+
11
+ Each agent has a name, system prompt, skills, channels, and memory.
12
+
13
+ ## Skill
14
+
15
+ Skills are modular capabilities an agent can use. Each skill:
16
+ - Has a `name` and `description`
17
+ - Receives the conversation context and current message
18
+ - Returns whether it handled the message and with what confidence
19
+
20
+ Built-in skills include FAQ lookup and human handoff.
21
+
22
+ ## Channel
23
+
24
+ Channels are the interfaces through which users interact with agents:
25
+ - **Web** — HTTP API with `/chat` endpoint and SSE streaming
26
+ - More channels (WebSocket, CLI, Slack) coming soon
27
+
28
+ ## Memory
29
+
30
+ Agents have two types of memory:
31
+ - **Short-term** — Conversation history within a session
32
+ - **Long-term** — Persistent knowledge across sessions (coming soon)
33
+
34
+ ## DTV (Data / Trust / Value)
35
+
36
+ The DTV framework governs agent operations:
37
+
38
+ ### Data
39
+ Read-only access to business data. Agents can read configurations but cannot modify source systems.
40
+
41
+ ### Trust
42
+ Progressive trust levels control agent capabilities:
43
+ - **sandbox** — No network, limited capabilities
44
+ - **verified** — Identity confirmed, basic capabilities
45
+ - **certified** — Security audited, full capabilities
46
+ - **listed** — Published in OPC marketplace
47
+
48
+ ### Value
49
+ Metrics tracking for agent performance and ROI:
50
+ - Response time, satisfaction scores, resolution rates
51
+ - Automated reporting and dashboards
@@ -1,79 +1,79 @@
1
- # Configuration
2
-
3
- ## OAD File Structure
4
-
5
- The `oad.yaml` file is the heart of your agent configuration:
6
-
7
- ```yaml
8
- apiVersion: opc/v1
9
- kind: Agent
10
- metadata:
11
- name: my-agent
12
- version: 1.0.0
13
- description: My AI agent
14
- spec:
15
- provider:
16
- default: openai
17
- allowed: [openai, deepseek, qwen]
18
- model: gpt-4o-mini
19
- systemPrompt: "You are a helpful assistant."
20
- skills: []
21
- channels:
22
- - type: web
23
- port: 3000
24
- memory:
25
- shortTerm: true
26
- longTerm: false
27
- testing:
28
- cases:
29
- - name: greeting-test
30
- input: "Hello"
31
- expect:
32
- contains: ["hello", "help"]
33
- maxLatencyMs: 5000
34
- rateLimits:
35
- perUser:
36
- maxRequests: 60
37
- windowMs: 60000
38
- perProvider:
39
- maxRequests: 100
40
- windowMs: 60000
41
- cache:
42
- enabled: true
43
- ttlMs: 3600000
44
- ```
45
-
46
- ## Environment Variables
47
-
48
- | Variable | Description | Default |
49
- |----------|-------------|---------|
50
- | `OPC_LLM_API_KEY` | LLM API key | — |
51
- | `OPC_LLM_BASE_URL` | LLM API base URL | `https://api.openai.com/v1` |
52
- | `OPC_LLM_MODEL` | Model name | `gpt-4o-mini` |
53
-
54
- ## Rate Limiting
55
-
56
- Configure per-user and per-provider rate limits in `oad.yaml`:
57
-
58
- ```yaml
59
- spec:
60
- rateLimits:
61
- perUser:
62
- maxRequests: 60
63
- windowMs: 60000
64
- perProvider:
65
- maxRequests: 100
66
- windowMs: 60000
67
- ```
68
-
69
- ## Caching
70
-
71
- Enable LLM response caching to reduce API costs:
72
-
73
- ```yaml
74
- spec:
75
- cache:
76
- enabled: true
77
- ttlMs: 3600000 # 1 hour
78
- maxEntries: 1000
79
- ```
1
+ # Configuration
2
+
3
+ ## OAD File Structure
4
+
5
+ The `oad.yaml` file is the heart of your agent configuration:
6
+
7
+ ```yaml
8
+ apiVersion: opc/v1
9
+ kind: Agent
10
+ metadata:
11
+ name: my-agent
12
+ version: 1.0.0
13
+ description: My AI agent
14
+ spec:
15
+ provider:
16
+ default: openai
17
+ allowed: [openai, deepseek, qwen]
18
+ model: gpt-4o-mini
19
+ systemPrompt: "You are a helpful assistant."
20
+ skills: []
21
+ channels:
22
+ - type: web
23
+ port: 3000
24
+ memory:
25
+ shortTerm: true
26
+ longTerm: false
27
+ testing:
28
+ cases:
29
+ - name: greeting-test
30
+ input: "Hello"
31
+ expect:
32
+ contains: ["hello", "help"]
33
+ maxLatencyMs: 5000
34
+ rateLimits:
35
+ perUser:
36
+ maxRequests: 60
37
+ windowMs: 60000
38
+ perProvider:
39
+ maxRequests: 100
40
+ windowMs: 60000
41
+ cache:
42
+ enabled: true
43
+ ttlMs: 3600000
44
+ ```
45
+
46
+ ## Environment Variables
47
+
48
+ | Variable | Description | Default |
49
+ |----------|-------------|---------|
50
+ | `OPC_LLM_API_KEY` | LLM API key | — |
51
+ | `OPC_LLM_BASE_URL` | LLM API base URL | `https://api.openai.com/v1` |
52
+ | `OPC_LLM_MODEL` | Model name | `gpt-4o-mini` |
53
+
54
+ ## Rate Limiting
55
+
56
+ Configure per-user and per-provider rate limits in `oad.yaml`:
57
+
58
+ ```yaml
59
+ spec:
60
+ rateLimits:
61
+ perUser:
62
+ maxRequests: 60
63
+ windowMs: 60000
64
+ perProvider:
65
+ maxRequests: 100
66
+ windowMs: 60000
67
+ ```
68
+
69
+ ## Caching
70
+
71
+ Enable LLM response caching to reduce API costs:
72
+
73
+ ```yaml
74
+ spec:
75
+ cache:
76
+ enabled: true
77
+ ttlMs: 3600000 # 1 hour
78
+ maxEntries: 1000
79
+ ```