machinaos 0.0.1
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/.env.template +71 -0
- package/LICENSE +21 -0
- package/README.md +87 -0
- package/bin/cli.js +159 -0
- package/client/.dockerignore +45 -0
- package/client/Dockerfile +68 -0
- package/client/eslint.config.js +29 -0
- package/client/index.html +13 -0
- package/client/nginx.conf +66 -0
- package/client/package.json +48 -0
- package/client/src/App.tsx +27 -0
- package/client/src/Dashboard.tsx +1173 -0
- package/client/src/ParameterPanel.tsx +301 -0
- package/client/src/components/AIAgentNode.tsx +321 -0
- package/client/src/components/APIKeyValidator.tsx +118 -0
- package/client/src/components/ClaudeChatModelNode.tsx +18 -0
- package/client/src/components/ConditionalEdge.tsx +189 -0
- package/client/src/components/CredentialsModal.tsx +306 -0
- package/client/src/components/EdgeConditionEditor.tsx +443 -0
- package/client/src/components/GeminiChatModelNode.tsx +18 -0
- package/client/src/components/GenericNode.tsx +357 -0
- package/client/src/components/LocationParameterPanel.tsx +154 -0
- package/client/src/components/ModelNode.tsx +286 -0
- package/client/src/components/OpenAIChatModelNode.tsx +18 -0
- package/client/src/components/OutputPanel.tsx +471 -0
- package/client/src/components/ParameterRenderer.tsx +1874 -0
- package/client/src/components/SkillEditorModal.tsx +417 -0
- package/client/src/components/SquareNode.tsx +797 -0
- package/client/src/components/StartNode.tsx +250 -0
- package/client/src/components/ToolkitNode.tsx +365 -0
- package/client/src/components/TriggerNode.tsx +463 -0
- package/client/src/components/auth/LoginPage.tsx +247 -0
- package/client/src/components/auth/ProtectedRoute.tsx +59 -0
- package/client/src/components/base/BaseChatModelNode.tsx +271 -0
- package/client/src/components/icons/AIProviderIcons.tsx +50 -0
- package/client/src/components/maps/GoogleMapsPicker.tsx +137 -0
- package/client/src/components/maps/MapsPreviewPanel.tsx +110 -0
- package/client/src/components/maps/index.ts +26 -0
- package/client/src/components/parameterPanel/InputSection.tsx +1094 -0
- package/client/src/components/parameterPanel/LocationPanelLayout.tsx +65 -0
- package/client/src/components/parameterPanel/MapsSection.tsx +92 -0
- package/client/src/components/parameterPanel/MiddleSection.tsx +571 -0
- package/client/src/components/parameterPanel/OutputSection.tsx +81 -0
- package/client/src/components/parameterPanel/ParameterPanelLayout.tsx +82 -0
- package/client/src/components/parameterPanel/ToolSchemaEditor.tsx +436 -0
- package/client/src/components/parameterPanel/index.ts +42 -0
- package/client/src/components/shared/DataPanel.tsx +142 -0
- package/client/src/components/shared/JSONTreeRenderer.tsx +106 -0
- package/client/src/components/ui/AIResultModal.tsx +204 -0
- package/client/src/components/ui/AndroidSettingsPanel.tsx +401 -0
- package/client/src/components/ui/CodeEditor.tsx +81 -0
- package/client/src/components/ui/CollapsibleSection.tsx +88 -0
- package/client/src/components/ui/ComponentItem.tsx +154 -0
- package/client/src/components/ui/ComponentPalette.tsx +321 -0
- package/client/src/components/ui/ConsolePanel.tsx +1074 -0
- package/client/src/components/ui/ErrorBoundary.tsx +196 -0
- package/client/src/components/ui/InputNodesPanel.tsx +204 -0
- package/client/src/components/ui/MapSelector.tsx +314 -0
- package/client/src/components/ui/Modal.tsx +149 -0
- package/client/src/components/ui/NodeContextMenu.tsx +192 -0
- package/client/src/components/ui/NodeOutputPanel.tsx +1150 -0
- package/client/src/components/ui/OutputDisplayPanel.tsx +381 -0
- package/client/src/components/ui/SettingsPanel.tsx +243 -0
- package/client/src/components/ui/TopToolbar.tsx +736 -0
- package/client/src/components/ui/WhatsAppSettingsPanel.tsx +345 -0
- package/client/src/components/ui/WorkflowSidebar.tsx +294 -0
- package/client/src/config/antdTheme.ts +186 -0
- package/client/src/config/api.ts +54 -0
- package/client/src/contexts/AuthContext.tsx +221 -0
- package/client/src/contexts/ThemeContext.tsx +42 -0
- package/client/src/contexts/WebSocketContext.tsx +1971 -0
- package/client/src/factories/baseChatModelFactory.ts +256 -0
- package/client/src/hooks/useAndroidOperations.ts +164 -0
- package/client/src/hooks/useApiKeyValidation.ts +107 -0
- package/client/src/hooks/useApiKeys.ts +238 -0
- package/client/src/hooks/useAppTheme.ts +17 -0
- package/client/src/hooks/useComponentPalette.ts +51 -0
- package/client/src/hooks/useCopyPaste.ts +155 -0
- package/client/src/hooks/useDragAndDrop.ts +124 -0
- package/client/src/hooks/useDragVariable.ts +88 -0
- package/client/src/hooks/useExecution.ts +313 -0
- package/client/src/hooks/useParameterPanel.ts +176 -0
- package/client/src/hooks/useReactFlowNodes.ts +189 -0
- package/client/src/hooks/useToolSchema.ts +209 -0
- package/client/src/hooks/useWhatsApp.ts +196 -0
- package/client/src/hooks/useWorkflowManagement.ts +46 -0
- package/client/src/index.css +315 -0
- package/client/src/main.tsx +19 -0
- package/client/src/nodeDefinitions/aiAgentNodes.ts +336 -0
- package/client/src/nodeDefinitions/aiModelNodes.ts +340 -0
- package/client/src/nodeDefinitions/androidDeviceNodes.ts +140 -0
- package/client/src/nodeDefinitions/androidServiceNodes.ts +383 -0
- package/client/src/nodeDefinitions/chatNodes.ts +135 -0
- package/client/src/nodeDefinitions/codeNodes.ts +54 -0
- package/client/src/nodeDefinitions/documentNodes.ts +379 -0
- package/client/src/nodeDefinitions/index.ts +15 -0
- package/client/src/nodeDefinitions/locationNodes.ts +463 -0
- package/client/src/nodeDefinitions/schedulerNodes.ts +220 -0
- package/client/src/nodeDefinitions/skillNodes.ts +211 -0
- package/client/src/nodeDefinitions/toolNodes.ts +198 -0
- package/client/src/nodeDefinitions/utilityNodes.ts +284 -0
- package/client/src/nodeDefinitions/whatsappNodes.ts +865 -0
- package/client/src/nodeDefinitions/workflowNodes.ts +41 -0
- package/client/src/nodeDefinitions.ts +104 -0
- package/client/src/schemas/workflowSchema.ts +264 -0
- package/client/src/services/dynamicParameterService.ts +96 -0
- package/client/src/services/execution/aiAgentExecutionService.ts +35 -0
- package/client/src/services/executionService.ts +232 -0
- package/client/src/services/workflowApi.ts +91 -0
- package/client/src/store/useAppStore.ts +582 -0
- package/client/src/styles/theme.ts +508 -0
- package/client/src/styles/zIndex.ts +17 -0
- package/client/src/types/ComponentTypes.ts +39 -0
- package/client/src/types/EdgeCondition.ts +231 -0
- package/client/src/types/INodeProperties.ts +288 -0
- package/client/src/types/NodeTypes.ts +28 -0
- package/client/src/utils/formatters.ts +33 -0
- package/client/src/utils/googleMapsLoader.ts +140 -0
- package/client/src/utils/locationUtils.ts +85 -0
- package/client/src/utils/nodeUtils.ts +31 -0
- package/client/src/utils/workflow.ts +30 -0
- package/client/src/utils/workflowExport.ts +120 -0
- package/client/src/vite-env.d.ts +12 -0
- package/client/tailwind.config.js +60 -0
- package/client/tsconfig.json +25 -0
- package/client/tsconfig.node.json +11 -0
- package/client/vite.config.js +35 -0
- package/docker-compose.prod.yml +107 -0
- package/docker-compose.yml +104 -0
- package/docs-MachinaOs/README.md +85 -0
- package/docs-MachinaOs/deployment/docker.mdx +228 -0
- package/docs-MachinaOs/deployment/production.mdx +345 -0
- package/docs-MachinaOs/docs.json +75 -0
- package/docs-MachinaOs/faq.mdx +309 -0
- package/docs-MachinaOs/favicon.svg +5 -0
- package/docs-MachinaOs/installation.mdx +160 -0
- package/docs-MachinaOs/introduction.mdx +114 -0
- package/docs-MachinaOs/logo/dark.svg +6 -0
- package/docs-MachinaOs/logo/light.svg +6 -0
- package/docs-MachinaOs/nodes/ai-agent.mdx +216 -0
- package/docs-MachinaOs/nodes/ai-models.mdx +240 -0
- package/docs-MachinaOs/nodes/android.mdx +411 -0
- package/docs-MachinaOs/nodes/overview.mdx +181 -0
- package/docs-MachinaOs/nodes/schedulers.mdx +316 -0
- package/docs-MachinaOs/nodes/webhooks.mdx +330 -0
- package/docs-MachinaOs/nodes/whatsapp.mdx +305 -0
- package/docs-MachinaOs/quickstart.mdx +119 -0
- package/docs-MachinaOs/tutorials/ai-agent-workflow.mdx +177 -0
- package/docs-MachinaOs/tutorials/android-automation.mdx +242 -0
- package/docs-MachinaOs/tutorials/first-workflow.mdx +134 -0
- package/docs-MachinaOs/tutorials/whatsapp-automation.mdx +185 -0
- package/nul +0 -0
- package/package.json +70 -0
- package/scripts/build.js +158 -0
- package/scripts/check-ports.ps1 +33 -0
- package/scripts/clean.js +40 -0
- package/scripts/docker.js +93 -0
- package/scripts/kill-port.ps1 +154 -0
- package/scripts/start.js +210 -0
- package/scripts/stop.js +325 -0
- package/server/.dockerignore +44 -0
- package/server/Dockerfile +45 -0
- package/server/constants.py +249 -0
- package/server/core/__init__.py +1 -0
- package/server/core/cache.py +461 -0
- package/server/core/config.py +128 -0
- package/server/core/container.py +99 -0
- package/server/core/database.py +1211 -0
- package/server/core/logging.py +314 -0
- package/server/main.py +289 -0
- package/server/middleware/__init__.py +5 -0
- package/server/middleware/auth.py +89 -0
- package/server/models/__init__.py +1 -0
- package/server/models/auth.py +52 -0
- package/server/models/cache.py +24 -0
- package/server/models/database.py +211 -0
- package/server/models/nodes.py +455 -0
- package/server/package.json +9 -0
- package/server/pyproject.toml +72 -0
- package/server/requirements.txt +83 -0
- package/server/routers/__init__.py +1 -0
- package/server/routers/android.py +294 -0
- package/server/routers/auth.py +203 -0
- package/server/routers/database.py +151 -0
- package/server/routers/maps.py +142 -0
- package/server/routers/nodejs_compat.py +289 -0
- package/server/routers/webhook.py +90 -0
- package/server/routers/websocket.py +2127 -0
- package/server/routers/whatsapp.py +761 -0
- package/server/routers/workflow.py +200 -0
- package/server/services/__init__.py +1 -0
- package/server/services/ai.py +2415 -0
- package/server/services/android/__init__.py +27 -0
- package/server/services/android/broadcaster.py +114 -0
- package/server/services/android/client.py +608 -0
- package/server/services/android/manager.py +78 -0
- package/server/services/android/protocol.py +165 -0
- package/server/services/android_service.py +588 -0
- package/server/services/auth.py +131 -0
- package/server/services/chat_client.py +160 -0
- package/server/services/deployment/__init__.py +12 -0
- package/server/services/deployment/manager.py +706 -0
- package/server/services/deployment/state.py +47 -0
- package/server/services/deployment/triggers.py +275 -0
- package/server/services/event_waiter.py +785 -0
- package/server/services/execution/__init__.py +77 -0
- package/server/services/execution/cache.py +769 -0
- package/server/services/execution/conditions.py +373 -0
- package/server/services/execution/dlq.py +132 -0
- package/server/services/execution/executor.py +1351 -0
- package/server/services/execution/models.py +531 -0
- package/server/services/execution/recovery.py +235 -0
- package/server/services/handlers/__init__.py +126 -0
- package/server/services/handlers/ai.py +355 -0
- package/server/services/handlers/android.py +260 -0
- package/server/services/handlers/code.py +278 -0
- package/server/services/handlers/document.py +598 -0
- package/server/services/handlers/http.py +193 -0
- package/server/services/handlers/polyglot.py +105 -0
- package/server/services/handlers/tools.py +845 -0
- package/server/services/handlers/triggers.py +107 -0
- package/server/services/handlers/utility.py +822 -0
- package/server/services/handlers/whatsapp.py +476 -0
- package/server/services/maps.py +289 -0
- package/server/services/memory_store.py +103 -0
- package/server/services/node_executor.py +375 -0
- package/server/services/parameter_resolver.py +218 -0
- package/server/services/polyglot_client.py +169 -0
- package/server/services/scheduler.py +155 -0
- package/server/services/skill_loader.py +417 -0
- package/server/services/status_broadcaster.py +826 -0
- package/server/services/temporal/__init__.py +23 -0
- package/server/services/temporal/activities.py +344 -0
- package/server/services/temporal/client.py +76 -0
- package/server/services/temporal/executor.py +147 -0
- package/server/services/temporal/worker.py +251 -0
- package/server/services/temporal/workflow.py +355 -0
- package/server/services/temporal/ws_client.py +236 -0
- package/server/services/text.py +111 -0
- package/server/services/user_auth.py +172 -0
- package/server/services/websocket_client.py +29 -0
- package/server/services/workflow.py +597 -0
- package/server/skills/android-skill/SKILL.md +82 -0
- package/server/skills/assistant-personality/SKILL.md +45 -0
- package/server/skills/code-skill/SKILL.md +140 -0
- package/server/skills/http-skill/SKILL.md +161 -0
- package/server/skills/maps-skill/SKILL.md +170 -0
- package/server/skills/memory-skill/SKILL.md +154 -0
- package/server/skills/scheduler-skill/SKILL.md +84 -0
- package/server/skills/whatsapp-skill/SKILL.md +283 -0
- package/server/uv.lock +2916 -0
- package/server/whatsapp-rpc/.dockerignore +30 -0
- package/server/whatsapp-rpc/Dockerfile +44 -0
- package/server/whatsapp-rpc/Dockerfile.web +17 -0
- package/server/whatsapp-rpc/README.md +139 -0
- package/server/whatsapp-rpc/cli.js +95 -0
- package/server/whatsapp-rpc/configs/config.yaml +7 -0
- package/server/whatsapp-rpc/docker-compose.yml +35 -0
- package/server/whatsapp-rpc/docs/API.md +410 -0
- package/server/whatsapp-rpc/go.mod +67 -0
- package/server/whatsapp-rpc/go.sum +203 -0
- package/server/whatsapp-rpc/package.json +30 -0
- package/server/whatsapp-rpc/schema.json +1294 -0
- package/server/whatsapp-rpc/scripts/clean.cjs +66 -0
- package/server/whatsapp-rpc/scripts/cli.js +162 -0
- package/server/whatsapp-rpc/src/go/cmd/server/main.go +91 -0
- package/server/whatsapp-rpc/src/go/config/config.go +49 -0
- package/server/whatsapp-rpc/src/go/rpc/rpc.go +446 -0
- package/server/whatsapp-rpc/src/go/rpc/server.go +112 -0
- package/server/whatsapp-rpc/src/go/whatsapp/history.go +166 -0
- package/server/whatsapp-rpc/src/go/whatsapp/messages.go +390 -0
- package/server/whatsapp-rpc/src/go/whatsapp/service.go +2130 -0
- package/server/whatsapp-rpc/src/go/whatsapp/types.go +261 -0
- package/server/whatsapp-rpc/src/python/pyproject.toml +15 -0
- package/server/whatsapp-rpc/src/python/whatsapp_rpc/__init__.py +4 -0
- package/server/whatsapp-rpc/src/python/whatsapp_rpc/client.py +427 -0
- package/server/whatsapp-rpc/web/app.py +609 -0
- package/server/whatsapp-rpc/web/requirements.txt +6 -0
- package/server/whatsapp-rpc/web/rpc_client.py +427 -0
- package/server/whatsapp-rpc/web/static/openapi.yaml +59 -0
- package/server/whatsapp-rpc/web/templates/base.html +150 -0
- package/server/whatsapp-rpc/web/templates/contacts.html +240 -0
- package/server/whatsapp-rpc/web/templates/dashboard.html +320 -0
- package/server/whatsapp-rpc/web/templates/groups.html +328 -0
- package/server/whatsapp-rpc/web/templates/messages.html +465 -0
- package/server/whatsapp-rpc/web/templates/messaging.html +681 -0
- package/server/whatsapp-rpc/web/templates/send.html +259 -0
- package/server/whatsapp-rpc/web/templates/settings.html +459 -0
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: AI Agent & Memory
|
|
3
|
+
description: Build intelligent agents with conversation memory
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# AI Agent & Memory
|
|
7
|
+
|
|
8
|
+
Create AI agents that remember context and can reason through complex tasks.
|
|
9
|
+
|
|
10
|
+
## AI Agent Node
|
|
11
|
+
|
|
12
|
+
The AI Agent is a powerful node that combines an AI model with memory and optional tools for complex reasoning tasks.
|
|
13
|
+
|
|
14
|
+
### Input Handles
|
|
15
|
+
|
|
16
|
+
| Handle | Position | Purpose |
|
|
17
|
+
|--------|----------|---------|
|
|
18
|
+
| Main Input | Left | User prompt/data |
|
|
19
|
+
| Memory | Bottom-left (diamond) | Connect Simple Memory |
|
|
20
|
+
| Model | Top (diamond) | Optional model override |
|
|
21
|
+
|
|
22
|
+
### Parameters
|
|
23
|
+
|
|
24
|
+
<ParamField path="systemPrompt" type="string">
|
|
25
|
+
Instructions that define the agent's behavior and personality
|
|
26
|
+
</ParamField>
|
|
27
|
+
|
|
28
|
+
<ParamField path="prompt" type="string" required>
|
|
29
|
+
The user message. Supports template variables.
|
|
30
|
+
</ParamField>
|
|
31
|
+
|
|
32
|
+
<ParamField path="maxIterations" type="number" default="5">
|
|
33
|
+
Maximum reasoning iterations for complex tasks
|
|
34
|
+
</ParamField>
|
|
35
|
+
|
|
36
|
+
### Output
|
|
37
|
+
|
|
38
|
+
```json
|
|
39
|
+
{
|
|
40
|
+
"response": "The agent's final response",
|
|
41
|
+
"iterations": 2,
|
|
42
|
+
"reasoning": ["Step 1 thought", "Step 2 thought"]
|
|
43
|
+
}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Example Configuration
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
System Prompt: You are a helpful customer service agent for TechCorp.
|
|
50
|
+
Answer questions about our products and services.
|
|
51
|
+
Be professional and concise.
|
|
52
|
+
|
|
53
|
+
Prompt: {{webhookTrigger.body.question}}
|
|
54
|
+
Max Iterations: 3
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Simple Memory Node
|
|
58
|
+
|
|
59
|
+
Stores conversation history for AI agents, enabling context-aware responses.
|
|
60
|
+
|
|
61
|
+
### Parameters
|
|
62
|
+
|
|
63
|
+
<ParamField path="sessionId" type="string" default="default">
|
|
64
|
+
Unique identifier for the conversation session
|
|
65
|
+
</ParamField>
|
|
66
|
+
|
|
67
|
+
<ParamField path="memoryType" type="select" default="buffer">
|
|
68
|
+
Memory storage mode
|
|
69
|
+
</ParamField>
|
|
70
|
+
|
|
71
|
+
<ParamField path="windowSize" type="number" default="10">
|
|
72
|
+
Number of messages to keep (Window mode only)
|
|
73
|
+
</ParamField>
|
|
74
|
+
|
|
75
|
+
### Memory Types
|
|
76
|
+
|
|
77
|
+
| Type | Description | Use Case |
|
|
78
|
+
|------|-------------|----------|
|
|
79
|
+
| Buffer | Keeps all messages | Short conversations |
|
|
80
|
+
| Window | Keeps last N messages | Long conversations |
|
|
81
|
+
|
|
82
|
+
### Connection
|
|
83
|
+
|
|
84
|
+
Simple Memory connects to the AI Agent's **memory handle** (diamond shape on bottom-left):
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
[Simple Memory] ---(diamond)---> [AI Agent]
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
<Warning>
|
|
91
|
+
Connect to the diamond handle, not the main input. The main input is for data flow.
|
|
92
|
+
</Warning>
|
|
93
|
+
|
|
94
|
+
### Session Management
|
|
95
|
+
|
|
96
|
+
Use dynamic session IDs for multi-user scenarios:
|
|
97
|
+
|
|
98
|
+
```
|
|
99
|
+
Session ID: {{webhookTrigger.body.user_id}}
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
This creates separate memory for each user.
|
|
103
|
+
|
|
104
|
+
### Output
|
|
105
|
+
|
|
106
|
+
Simple Memory is a **config node** - it doesn't produce output. The AI Agent reads its configuration directly.
|
|
107
|
+
|
|
108
|
+
## Building an Agent Workflow
|
|
109
|
+
|
|
110
|
+
### Basic Setup
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
[Webhook Trigger] --> [AI Agent] --> [Webhook Response]
|
|
114
|
+
^
|
|
115
|
+
|
|
|
116
|
+
[Simple Memory]
|
|
117
|
+
^
|
|
118
|
+
|
|
|
119
|
+
[OpenAI Chat]
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Step-by-Step
|
|
123
|
+
|
|
124
|
+
1. **Add AI Agent** from AI Agents category
|
|
125
|
+
2. **Add Simple Memory** and connect to memory handle
|
|
126
|
+
3. **Add AI Model** and connect to model handle (optional)
|
|
127
|
+
4. **Add Trigger** (Webhook, WhatsApp, etc.) connected to main input
|
|
128
|
+
5. **Add Response** node connected to agent output
|
|
129
|
+
|
|
130
|
+
## Multi-Turn Conversation Example
|
|
131
|
+
|
|
132
|
+
### First Request
|
|
133
|
+
```bash
|
|
134
|
+
curl -X POST http://localhost:3010/webhook/chat \
|
|
135
|
+
-d '{"user_id": "user123", "message": "My name is Alex"}'
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Response: "Nice to meet you, Alex! How can I help you today?"
|
|
139
|
+
|
|
140
|
+
### Second Request
|
|
141
|
+
```bash
|
|
142
|
+
curl -X POST http://localhost:3010/webhook/chat \
|
|
143
|
+
-d '{"user_id": "user123", "message": "What is my name?"}'
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Response: "Your name is Alex, as you told me earlier."
|
|
147
|
+
|
|
148
|
+
## Memory Persistence
|
|
149
|
+
|
|
150
|
+
- Memory is stored in **SQLite** database
|
|
151
|
+
- Survives server restarts
|
|
152
|
+
- Managed automatically by the AI Agent
|
|
153
|
+
|
|
154
|
+
### Clearing Memory
|
|
155
|
+
|
|
156
|
+
To clear a session's memory, delete the session from the database or create a new session ID.
|
|
157
|
+
|
|
158
|
+
## Advanced: Window Mode
|
|
159
|
+
|
|
160
|
+
For long-running conversations, use Window mode to limit memory:
|
|
161
|
+
|
|
162
|
+
```
|
|
163
|
+
Memory Type: Window
|
|
164
|
+
Window Size: 10
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
This keeps only the last 10 message pairs, preventing context overflow.
|
|
168
|
+
|
|
169
|
+
## Tips
|
|
170
|
+
|
|
171
|
+
<Tip>
|
|
172
|
+
Use descriptive **system prompts** to define agent behavior clearly.
|
|
173
|
+
</Tip>
|
|
174
|
+
|
|
175
|
+
<Tip>
|
|
176
|
+
Set **Max Iterations** based on task complexity. Simple Q&A: 1-2, Complex reasoning: 3-5.
|
|
177
|
+
</Tip>
|
|
178
|
+
|
|
179
|
+
<Tip>
|
|
180
|
+
Use unique **Session IDs** per user/conversation for proper isolation.
|
|
181
|
+
</Tip>
|
|
182
|
+
|
|
183
|
+
<Warning>
|
|
184
|
+
Long conversations with Buffer mode can exceed model context limits. Use Window mode for production.
|
|
185
|
+
</Warning>
|
|
186
|
+
|
|
187
|
+
## Troubleshooting
|
|
188
|
+
|
|
189
|
+
<Accordion title="Agent doesn't remember previous messages">
|
|
190
|
+
- Verify Simple Memory is connected to diamond handle (not main input)
|
|
191
|
+
- Check Session ID is consistent across requests
|
|
192
|
+
- Ensure workflow is deployed (not just saved)
|
|
193
|
+
</Accordion>
|
|
194
|
+
|
|
195
|
+
<Accordion title="Agent gives inconsistent responses">
|
|
196
|
+
- Check if Session ID changes between requests
|
|
197
|
+
- Verify memory type and window size settings
|
|
198
|
+
- Review system prompt for clarity
|
|
199
|
+
</Accordion>
|
|
200
|
+
|
|
201
|
+
<Accordion title="Memory grows too large">
|
|
202
|
+
- Switch to Window mode
|
|
203
|
+
- Set appropriate window size (10-20 messages)
|
|
204
|
+
- Consider clearing sessions periodically
|
|
205
|
+
</Accordion>
|
|
206
|
+
|
|
207
|
+
## Related
|
|
208
|
+
|
|
209
|
+
<CardGroup cols={2}>
|
|
210
|
+
<Card title="AI Models" icon="brain" href="/nodes/ai-models">
|
|
211
|
+
Available chat models
|
|
212
|
+
</Card>
|
|
213
|
+
<Card title="AI Tutorial" icon="graduation-cap" href="/tutorials/ai-agent-workflow">
|
|
214
|
+
Step-by-step agent tutorial
|
|
215
|
+
</Card>
|
|
216
|
+
</CardGroup>
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: AI Chat Models
|
|
3
|
+
description: OpenAI, Anthropic Claude, and Google Gemini integration
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# AI Chat Models
|
|
7
|
+
|
|
8
|
+
MachinaOs supports three major AI providers for chat completions.
|
|
9
|
+
|
|
10
|
+
## Available Models
|
|
11
|
+
|
|
12
|
+
Models are fetched dynamically from each provider's API when you add your API key.
|
|
13
|
+
|
|
14
|
+
### OpenAI
|
|
15
|
+
| Model | Best For |
|
|
16
|
+
|-------|----------|
|
|
17
|
+
| gpt-5.2 | Most capable, professional tasks |
|
|
18
|
+
| gpt-5 | Advanced reasoning, multimodal |
|
|
19
|
+
| o3 | Complex reasoning |
|
|
20
|
+
| o4-mini | Fast, cost-efficient reasoning |
|
|
21
|
+
|
|
22
|
+
### Anthropic Claude
|
|
23
|
+
| Model | Best For |
|
|
24
|
+
|-------|----------|
|
|
25
|
+
| claude-opus-4.5 | Best for coding and agents |
|
|
26
|
+
| claude-sonnet-4.5 | Balanced performance |
|
|
27
|
+
| claude-haiku-4.5 | Fast responses |
|
|
28
|
+
|
|
29
|
+
### Google Gemini
|
|
30
|
+
| Model | Best For |
|
|
31
|
+
|-------|----------|
|
|
32
|
+
| gemini-3-pro | Most intelligent, complex tasks |
|
|
33
|
+
| gemini-3-flash | Fast, frontier performance |
|
|
34
|
+
| gemini-2.5-pro | Long context, multimodal |
|
|
35
|
+
|
|
36
|
+
## Adding API Keys
|
|
37
|
+
|
|
38
|
+
1. Click the **key icon** in the toolbar
|
|
39
|
+
2. Select the provider
|
|
40
|
+
3. Enter your API key
|
|
41
|
+
4. Click **Validate** to test
|
|
42
|
+
|
|
43
|
+
<Info>
|
|
44
|
+
API keys are encrypted and stored locally. They're never sent to MachinaOs servers.
|
|
45
|
+
</Info>
|
|
46
|
+
|
|
47
|
+
## OpenAI Chat Model
|
|
48
|
+
|
|
49
|
+
### Parameters
|
|
50
|
+
|
|
51
|
+
<ParamField path="model" type="select" required>
|
|
52
|
+
The model to use (gpt-5.2, gpt-5, o3, o4-mini)
|
|
53
|
+
</ParamField>
|
|
54
|
+
|
|
55
|
+
<ParamField path="prompt" type="string" required>
|
|
56
|
+
The message to send. Supports template variables.
|
|
57
|
+
</ParamField>
|
|
58
|
+
|
|
59
|
+
<ParamField path="temperature" type="slider" default="0.7">
|
|
60
|
+
Randomness (0 = deterministic, 1 = creative)
|
|
61
|
+
</ParamField>
|
|
62
|
+
|
|
63
|
+
<ParamField path="maxTokens" type="number" default="1000">
|
|
64
|
+
Maximum response length
|
|
65
|
+
</ParamField>
|
|
66
|
+
|
|
67
|
+
<ParamField path="responseFormat" type="select" default="text">
|
|
68
|
+
Output format: text or json_object
|
|
69
|
+
</ParamField>
|
|
70
|
+
|
|
71
|
+
### Output
|
|
72
|
+
|
|
73
|
+
```json
|
|
74
|
+
{
|
|
75
|
+
"response": "The AI's response text",
|
|
76
|
+
"model": "gpt-5.2",
|
|
77
|
+
"usage": {
|
|
78
|
+
"prompt_tokens": 50,
|
|
79
|
+
"completion_tokens": 100,
|
|
80
|
+
"total_tokens": 150
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Example
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
Prompt: Summarize this in 2 sentences: {{webhookTrigger.body.text}}
|
|
89
|
+
Temperature: 0.3
|
|
90
|
+
Max Tokens: 200
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Anthropic Claude Model
|
|
94
|
+
|
|
95
|
+
### Parameters
|
|
96
|
+
|
|
97
|
+
<ParamField path="model" type="select" required>
|
|
98
|
+
Claude model (claude-opus-4.5, claude-sonnet-4.5, claude-haiku-4.5)
|
|
99
|
+
</ParamField>
|
|
100
|
+
|
|
101
|
+
<ParamField path="prompt" type="string" required>
|
|
102
|
+
The message to send
|
|
103
|
+
</ParamField>
|
|
104
|
+
|
|
105
|
+
<ParamField path="systemPrompt" type="string">
|
|
106
|
+
System instructions for the model
|
|
107
|
+
</ParamField>
|
|
108
|
+
|
|
109
|
+
<ParamField path="temperature" type="slider" default="0.7">
|
|
110
|
+
Randomness (0-1)
|
|
111
|
+
</ParamField>
|
|
112
|
+
|
|
113
|
+
<ParamField path="maxTokens" type="number" default="1000">
|
|
114
|
+
Maximum response length
|
|
115
|
+
</ParamField>
|
|
116
|
+
|
|
117
|
+
### Output
|
|
118
|
+
|
|
119
|
+
```json
|
|
120
|
+
{
|
|
121
|
+
"response": "Claude's response",
|
|
122
|
+
"model": "claude-sonnet-4.5",
|
|
123
|
+
"stop_reason": "end_turn"
|
|
124
|
+
}
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
### Example
|
|
128
|
+
|
|
129
|
+
```
|
|
130
|
+
System Prompt: You are a helpful coding assistant.
|
|
131
|
+
Prompt: Explain this error: {{webhookTrigger.body.error}}
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## Google Gemini Model
|
|
135
|
+
|
|
136
|
+
### Parameters
|
|
137
|
+
|
|
138
|
+
<ParamField path="model" type="select" required>
|
|
139
|
+
Gemini model (gemini-3-pro, gemini-3-flash, gemini-2.5-pro)
|
|
140
|
+
</ParamField>
|
|
141
|
+
|
|
142
|
+
<ParamField path="prompt" type="string" required>
|
|
143
|
+
The message to send
|
|
144
|
+
</ParamField>
|
|
145
|
+
|
|
146
|
+
<ParamField path="temperature" type="slider" default="0.7">
|
|
147
|
+
Randomness (0-1)
|
|
148
|
+
</ParamField>
|
|
149
|
+
|
|
150
|
+
<ParamField path="maxTokens" type="number" default="1000">
|
|
151
|
+
Maximum response length
|
|
152
|
+
</ParamField>
|
|
153
|
+
|
|
154
|
+
<ParamField path="safetySettings" type="select" default="default">
|
|
155
|
+
Content safety level
|
|
156
|
+
</ParamField>
|
|
157
|
+
|
|
158
|
+
### Output
|
|
159
|
+
|
|
160
|
+
```json
|
|
161
|
+
{
|
|
162
|
+
"response": "Gemini's response",
|
|
163
|
+
"model": "gemini-3-pro"
|
|
164
|
+
}
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
## Comparing Providers
|
|
168
|
+
|
|
169
|
+
| Feature | OpenAI | Claude | Gemini |
|
|
170
|
+
|---------|--------|--------|--------|
|
|
171
|
+
| Speed | Fast | Medium | Fast |
|
|
172
|
+
| Reasoning | Good | Excellent | Good |
|
|
173
|
+
| Context Window | 128K | 200K | 1M |
|
|
174
|
+
| Multimodal | Yes | Yes | Yes |
|
|
175
|
+
| JSON Mode | Yes | No | No |
|
|
176
|
+
|
|
177
|
+
## Common Use Cases
|
|
178
|
+
|
|
179
|
+
### Text Generation
|
|
180
|
+
```
|
|
181
|
+
Prompt: Write a product description for: {{input.product_name}}
|
|
182
|
+
Temperature: 0.8
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
### Data Extraction
|
|
186
|
+
```
|
|
187
|
+
Prompt: Extract the email and phone from: {{input.text}}
|
|
188
|
+
Response Format: json_object
|
|
189
|
+
Temperature: 0
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
### Translation
|
|
193
|
+
```
|
|
194
|
+
Prompt: Translate to Spanish: {{input.text}}
|
|
195
|
+
Temperature: 0.3
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### Summarization
|
|
199
|
+
```
|
|
200
|
+
Prompt: Summarize in 3 bullet points: {{input.article}}
|
|
201
|
+
Temperature: 0.3
|
|
202
|
+
Max Tokens: 200
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
## Tips
|
|
206
|
+
|
|
207
|
+
<Tip>
|
|
208
|
+
Use **temperature 0** for deterministic outputs like data extraction.
|
|
209
|
+
</Tip>
|
|
210
|
+
|
|
211
|
+
<Tip>
|
|
212
|
+
Use **temperature 0.7-0.9** for creative writing tasks.
|
|
213
|
+
</Tip>
|
|
214
|
+
|
|
215
|
+
<Tip>
|
|
216
|
+
Enable **JSON mode** (OpenAI) when you need structured output.
|
|
217
|
+
</Tip>
|
|
218
|
+
|
|
219
|
+
<Warning>
|
|
220
|
+
API calls cost money. Monitor your usage in your provider's dashboard.
|
|
221
|
+
</Warning>
|
|
222
|
+
|
|
223
|
+
## Error Handling
|
|
224
|
+
|
|
225
|
+
| Error | Cause | Solution |
|
|
226
|
+
|-------|-------|----------|
|
|
227
|
+
| 401 Unauthorized | Invalid API key | Check/update API key |
|
|
228
|
+
| 429 Rate Limited | Too many requests | Add delay, reduce frequency |
|
|
229
|
+
| 500 Server Error | Provider issue | Retry later |
|
|
230
|
+
|
|
231
|
+
## Related
|
|
232
|
+
|
|
233
|
+
<CardGroup cols={2}>
|
|
234
|
+
<Card title="AI Agent" icon="robot" href="/nodes/ai-agent">
|
|
235
|
+
Use models with memory and tools
|
|
236
|
+
</Card>
|
|
237
|
+
<Card title="AI Tutorial" icon="graduation-cap" href="/tutorials/ai-agent-workflow">
|
|
238
|
+
Build an AI-powered workflow
|
|
239
|
+
</Card>
|
|
240
|
+
</CardGroup>
|