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.
Files changed (288) hide show
  1. package/.env.template +71 -0
  2. package/LICENSE +21 -0
  3. package/README.md +87 -0
  4. package/bin/cli.js +159 -0
  5. package/client/.dockerignore +45 -0
  6. package/client/Dockerfile +68 -0
  7. package/client/eslint.config.js +29 -0
  8. package/client/index.html +13 -0
  9. package/client/nginx.conf +66 -0
  10. package/client/package.json +48 -0
  11. package/client/src/App.tsx +27 -0
  12. package/client/src/Dashboard.tsx +1173 -0
  13. package/client/src/ParameterPanel.tsx +301 -0
  14. package/client/src/components/AIAgentNode.tsx +321 -0
  15. package/client/src/components/APIKeyValidator.tsx +118 -0
  16. package/client/src/components/ClaudeChatModelNode.tsx +18 -0
  17. package/client/src/components/ConditionalEdge.tsx +189 -0
  18. package/client/src/components/CredentialsModal.tsx +306 -0
  19. package/client/src/components/EdgeConditionEditor.tsx +443 -0
  20. package/client/src/components/GeminiChatModelNode.tsx +18 -0
  21. package/client/src/components/GenericNode.tsx +357 -0
  22. package/client/src/components/LocationParameterPanel.tsx +154 -0
  23. package/client/src/components/ModelNode.tsx +286 -0
  24. package/client/src/components/OpenAIChatModelNode.tsx +18 -0
  25. package/client/src/components/OutputPanel.tsx +471 -0
  26. package/client/src/components/ParameterRenderer.tsx +1874 -0
  27. package/client/src/components/SkillEditorModal.tsx +417 -0
  28. package/client/src/components/SquareNode.tsx +797 -0
  29. package/client/src/components/StartNode.tsx +250 -0
  30. package/client/src/components/ToolkitNode.tsx +365 -0
  31. package/client/src/components/TriggerNode.tsx +463 -0
  32. package/client/src/components/auth/LoginPage.tsx +247 -0
  33. package/client/src/components/auth/ProtectedRoute.tsx +59 -0
  34. package/client/src/components/base/BaseChatModelNode.tsx +271 -0
  35. package/client/src/components/icons/AIProviderIcons.tsx +50 -0
  36. package/client/src/components/maps/GoogleMapsPicker.tsx +137 -0
  37. package/client/src/components/maps/MapsPreviewPanel.tsx +110 -0
  38. package/client/src/components/maps/index.ts +26 -0
  39. package/client/src/components/parameterPanel/InputSection.tsx +1094 -0
  40. package/client/src/components/parameterPanel/LocationPanelLayout.tsx +65 -0
  41. package/client/src/components/parameterPanel/MapsSection.tsx +92 -0
  42. package/client/src/components/parameterPanel/MiddleSection.tsx +571 -0
  43. package/client/src/components/parameterPanel/OutputSection.tsx +81 -0
  44. package/client/src/components/parameterPanel/ParameterPanelLayout.tsx +82 -0
  45. package/client/src/components/parameterPanel/ToolSchemaEditor.tsx +436 -0
  46. package/client/src/components/parameterPanel/index.ts +42 -0
  47. package/client/src/components/shared/DataPanel.tsx +142 -0
  48. package/client/src/components/shared/JSONTreeRenderer.tsx +106 -0
  49. package/client/src/components/ui/AIResultModal.tsx +204 -0
  50. package/client/src/components/ui/AndroidSettingsPanel.tsx +401 -0
  51. package/client/src/components/ui/CodeEditor.tsx +81 -0
  52. package/client/src/components/ui/CollapsibleSection.tsx +88 -0
  53. package/client/src/components/ui/ComponentItem.tsx +154 -0
  54. package/client/src/components/ui/ComponentPalette.tsx +321 -0
  55. package/client/src/components/ui/ConsolePanel.tsx +1074 -0
  56. package/client/src/components/ui/ErrorBoundary.tsx +196 -0
  57. package/client/src/components/ui/InputNodesPanel.tsx +204 -0
  58. package/client/src/components/ui/MapSelector.tsx +314 -0
  59. package/client/src/components/ui/Modal.tsx +149 -0
  60. package/client/src/components/ui/NodeContextMenu.tsx +192 -0
  61. package/client/src/components/ui/NodeOutputPanel.tsx +1150 -0
  62. package/client/src/components/ui/OutputDisplayPanel.tsx +381 -0
  63. package/client/src/components/ui/SettingsPanel.tsx +243 -0
  64. package/client/src/components/ui/TopToolbar.tsx +736 -0
  65. package/client/src/components/ui/WhatsAppSettingsPanel.tsx +345 -0
  66. package/client/src/components/ui/WorkflowSidebar.tsx +294 -0
  67. package/client/src/config/antdTheme.ts +186 -0
  68. package/client/src/config/api.ts +54 -0
  69. package/client/src/contexts/AuthContext.tsx +221 -0
  70. package/client/src/contexts/ThemeContext.tsx +42 -0
  71. package/client/src/contexts/WebSocketContext.tsx +1971 -0
  72. package/client/src/factories/baseChatModelFactory.ts +256 -0
  73. package/client/src/hooks/useAndroidOperations.ts +164 -0
  74. package/client/src/hooks/useApiKeyValidation.ts +107 -0
  75. package/client/src/hooks/useApiKeys.ts +238 -0
  76. package/client/src/hooks/useAppTheme.ts +17 -0
  77. package/client/src/hooks/useComponentPalette.ts +51 -0
  78. package/client/src/hooks/useCopyPaste.ts +155 -0
  79. package/client/src/hooks/useDragAndDrop.ts +124 -0
  80. package/client/src/hooks/useDragVariable.ts +88 -0
  81. package/client/src/hooks/useExecution.ts +313 -0
  82. package/client/src/hooks/useParameterPanel.ts +176 -0
  83. package/client/src/hooks/useReactFlowNodes.ts +189 -0
  84. package/client/src/hooks/useToolSchema.ts +209 -0
  85. package/client/src/hooks/useWhatsApp.ts +196 -0
  86. package/client/src/hooks/useWorkflowManagement.ts +46 -0
  87. package/client/src/index.css +315 -0
  88. package/client/src/main.tsx +19 -0
  89. package/client/src/nodeDefinitions/aiAgentNodes.ts +336 -0
  90. package/client/src/nodeDefinitions/aiModelNodes.ts +340 -0
  91. package/client/src/nodeDefinitions/androidDeviceNodes.ts +140 -0
  92. package/client/src/nodeDefinitions/androidServiceNodes.ts +383 -0
  93. package/client/src/nodeDefinitions/chatNodes.ts +135 -0
  94. package/client/src/nodeDefinitions/codeNodes.ts +54 -0
  95. package/client/src/nodeDefinitions/documentNodes.ts +379 -0
  96. package/client/src/nodeDefinitions/index.ts +15 -0
  97. package/client/src/nodeDefinitions/locationNodes.ts +463 -0
  98. package/client/src/nodeDefinitions/schedulerNodes.ts +220 -0
  99. package/client/src/nodeDefinitions/skillNodes.ts +211 -0
  100. package/client/src/nodeDefinitions/toolNodes.ts +198 -0
  101. package/client/src/nodeDefinitions/utilityNodes.ts +284 -0
  102. package/client/src/nodeDefinitions/whatsappNodes.ts +865 -0
  103. package/client/src/nodeDefinitions/workflowNodes.ts +41 -0
  104. package/client/src/nodeDefinitions.ts +104 -0
  105. package/client/src/schemas/workflowSchema.ts +264 -0
  106. package/client/src/services/dynamicParameterService.ts +96 -0
  107. package/client/src/services/execution/aiAgentExecutionService.ts +35 -0
  108. package/client/src/services/executionService.ts +232 -0
  109. package/client/src/services/workflowApi.ts +91 -0
  110. package/client/src/store/useAppStore.ts +582 -0
  111. package/client/src/styles/theme.ts +508 -0
  112. package/client/src/styles/zIndex.ts +17 -0
  113. package/client/src/types/ComponentTypes.ts +39 -0
  114. package/client/src/types/EdgeCondition.ts +231 -0
  115. package/client/src/types/INodeProperties.ts +288 -0
  116. package/client/src/types/NodeTypes.ts +28 -0
  117. package/client/src/utils/formatters.ts +33 -0
  118. package/client/src/utils/googleMapsLoader.ts +140 -0
  119. package/client/src/utils/locationUtils.ts +85 -0
  120. package/client/src/utils/nodeUtils.ts +31 -0
  121. package/client/src/utils/workflow.ts +30 -0
  122. package/client/src/utils/workflowExport.ts +120 -0
  123. package/client/src/vite-env.d.ts +12 -0
  124. package/client/tailwind.config.js +60 -0
  125. package/client/tsconfig.json +25 -0
  126. package/client/tsconfig.node.json +11 -0
  127. package/client/vite.config.js +35 -0
  128. package/docker-compose.prod.yml +107 -0
  129. package/docker-compose.yml +104 -0
  130. package/docs-MachinaOs/README.md +85 -0
  131. package/docs-MachinaOs/deployment/docker.mdx +228 -0
  132. package/docs-MachinaOs/deployment/production.mdx +345 -0
  133. package/docs-MachinaOs/docs.json +75 -0
  134. package/docs-MachinaOs/faq.mdx +309 -0
  135. package/docs-MachinaOs/favicon.svg +5 -0
  136. package/docs-MachinaOs/installation.mdx +160 -0
  137. package/docs-MachinaOs/introduction.mdx +114 -0
  138. package/docs-MachinaOs/logo/dark.svg +6 -0
  139. package/docs-MachinaOs/logo/light.svg +6 -0
  140. package/docs-MachinaOs/nodes/ai-agent.mdx +216 -0
  141. package/docs-MachinaOs/nodes/ai-models.mdx +240 -0
  142. package/docs-MachinaOs/nodes/android.mdx +411 -0
  143. package/docs-MachinaOs/nodes/overview.mdx +181 -0
  144. package/docs-MachinaOs/nodes/schedulers.mdx +316 -0
  145. package/docs-MachinaOs/nodes/webhooks.mdx +330 -0
  146. package/docs-MachinaOs/nodes/whatsapp.mdx +305 -0
  147. package/docs-MachinaOs/quickstart.mdx +119 -0
  148. package/docs-MachinaOs/tutorials/ai-agent-workflow.mdx +177 -0
  149. package/docs-MachinaOs/tutorials/android-automation.mdx +242 -0
  150. package/docs-MachinaOs/tutorials/first-workflow.mdx +134 -0
  151. package/docs-MachinaOs/tutorials/whatsapp-automation.mdx +185 -0
  152. package/nul +0 -0
  153. package/package.json +70 -0
  154. package/scripts/build.js +158 -0
  155. package/scripts/check-ports.ps1 +33 -0
  156. package/scripts/clean.js +40 -0
  157. package/scripts/docker.js +93 -0
  158. package/scripts/kill-port.ps1 +154 -0
  159. package/scripts/start.js +210 -0
  160. package/scripts/stop.js +325 -0
  161. package/server/.dockerignore +44 -0
  162. package/server/Dockerfile +45 -0
  163. package/server/constants.py +249 -0
  164. package/server/core/__init__.py +1 -0
  165. package/server/core/cache.py +461 -0
  166. package/server/core/config.py +128 -0
  167. package/server/core/container.py +99 -0
  168. package/server/core/database.py +1211 -0
  169. package/server/core/logging.py +314 -0
  170. package/server/main.py +289 -0
  171. package/server/middleware/__init__.py +5 -0
  172. package/server/middleware/auth.py +89 -0
  173. package/server/models/__init__.py +1 -0
  174. package/server/models/auth.py +52 -0
  175. package/server/models/cache.py +24 -0
  176. package/server/models/database.py +211 -0
  177. package/server/models/nodes.py +455 -0
  178. package/server/package.json +9 -0
  179. package/server/pyproject.toml +72 -0
  180. package/server/requirements.txt +83 -0
  181. package/server/routers/__init__.py +1 -0
  182. package/server/routers/android.py +294 -0
  183. package/server/routers/auth.py +203 -0
  184. package/server/routers/database.py +151 -0
  185. package/server/routers/maps.py +142 -0
  186. package/server/routers/nodejs_compat.py +289 -0
  187. package/server/routers/webhook.py +90 -0
  188. package/server/routers/websocket.py +2127 -0
  189. package/server/routers/whatsapp.py +761 -0
  190. package/server/routers/workflow.py +200 -0
  191. package/server/services/__init__.py +1 -0
  192. package/server/services/ai.py +2415 -0
  193. package/server/services/android/__init__.py +27 -0
  194. package/server/services/android/broadcaster.py +114 -0
  195. package/server/services/android/client.py +608 -0
  196. package/server/services/android/manager.py +78 -0
  197. package/server/services/android/protocol.py +165 -0
  198. package/server/services/android_service.py +588 -0
  199. package/server/services/auth.py +131 -0
  200. package/server/services/chat_client.py +160 -0
  201. package/server/services/deployment/__init__.py +12 -0
  202. package/server/services/deployment/manager.py +706 -0
  203. package/server/services/deployment/state.py +47 -0
  204. package/server/services/deployment/triggers.py +275 -0
  205. package/server/services/event_waiter.py +785 -0
  206. package/server/services/execution/__init__.py +77 -0
  207. package/server/services/execution/cache.py +769 -0
  208. package/server/services/execution/conditions.py +373 -0
  209. package/server/services/execution/dlq.py +132 -0
  210. package/server/services/execution/executor.py +1351 -0
  211. package/server/services/execution/models.py +531 -0
  212. package/server/services/execution/recovery.py +235 -0
  213. package/server/services/handlers/__init__.py +126 -0
  214. package/server/services/handlers/ai.py +355 -0
  215. package/server/services/handlers/android.py +260 -0
  216. package/server/services/handlers/code.py +278 -0
  217. package/server/services/handlers/document.py +598 -0
  218. package/server/services/handlers/http.py +193 -0
  219. package/server/services/handlers/polyglot.py +105 -0
  220. package/server/services/handlers/tools.py +845 -0
  221. package/server/services/handlers/triggers.py +107 -0
  222. package/server/services/handlers/utility.py +822 -0
  223. package/server/services/handlers/whatsapp.py +476 -0
  224. package/server/services/maps.py +289 -0
  225. package/server/services/memory_store.py +103 -0
  226. package/server/services/node_executor.py +375 -0
  227. package/server/services/parameter_resolver.py +218 -0
  228. package/server/services/polyglot_client.py +169 -0
  229. package/server/services/scheduler.py +155 -0
  230. package/server/services/skill_loader.py +417 -0
  231. package/server/services/status_broadcaster.py +826 -0
  232. package/server/services/temporal/__init__.py +23 -0
  233. package/server/services/temporal/activities.py +344 -0
  234. package/server/services/temporal/client.py +76 -0
  235. package/server/services/temporal/executor.py +147 -0
  236. package/server/services/temporal/worker.py +251 -0
  237. package/server/services/temporal/workflow.py +355 -0
  238. package/server/services/temporal/ws_client.py +236 -0
  239. package/server/services/text.py +111 -0
  240. package/server/services/user_auth.py +172 -0
  241. package/server/services/websocket_client.py +29 -0
  242. package/server/services/workflow.py +597 -0
  243. package/server/skills/android-skill/SKILL.md +82 -0
  244. package/server/skills/assistant-personality/SKILL.md +45 -0
  245. package/server/skills/code-skill/SKILL.md +140 -0
  246. package/server/skills/http-skill/SKILL.md +161 -0
  247. package/server/skills/maps-skill/SKILL.md +170 -0
  248. package/server/skills/memory-skill/SKILL.md +154 -0
  249. package/server/skills/scheduler-skill/SKILL.md +84 -0
  250. package/server/skills/whatsapp-skill/SKILL.md +283 -0
  251. package/server/uv.lock +2916 -0
  252. package/server/whatsapp-rpc/.dockerignore +30 -0
  253. package/server/whatsapp-rpc/Dockerfile +44 -0
  254. package/server/whatsapp-rpc/Dockerfile.web +17 -0
  255. package/server/whatsapp-rpc/README.md +139 -0
  256. package/server/whatsapp-rpc/cli.js +95 -0
  257. package/server/whatsapp-rpc/configs/config.yaml +7 -0
  258. package/server/whatsapp-rpc/docker-compose.yml +35 -0
  259. package/server/whatsapp-rpc/docs/API.md +410 -0
  260. package/server/whatsapp-rpc/go.mod +67 -0
  261. package/server/whatsapp-rpc/go.sum +203 -0
  262. package/server/whatsapp-rpc/package.json +30 -0
  263. package/server/whatsapp-rpc/schema.json +1294 -0
  264. package/server/whatsapp-rpc/scripts/clean.cjs +66 -0
  265. package/server/whatsapp-rpc/scripts/cli.js +162 -0
  266. package/server/whatsapp-rpc/src/go/cmd/server/main.go +91 -0
  267. package/server/whatsapp-rpc/src/go/config/config.go +49 -0
  268. package/server/whatsapp-rpc/src/go/rpc/rpc.go +446 -0
  269. package/server/whatsapp-rpc/src/go/rpc/server.go +112 -0
  270. package/server/whatsapp-rpc/src/go/whatsapp/history.go +166 -0
  271. package/server/whatsapp-rpc/src/go/whatsapp/messages.go +390 -0
  272. package/server/whatsapp-rpc/src/go/whatsapp/service.go +2130 -0
  273. package/server/whatsapp-rpc/src/go/whatsapp/types.go +261 -0
  274. package/server/whatsapp-rpc/src/python/pyproject.toml +15 -0
  275. package/server/whatsapp-rpc/src/python/whatsapp_rpc/__init__.py +4 -0
  276. package/server/whatsapp-rpc/src/python/whatsapp_rpc/client.py +427 -0
  277. package/server/whatsapp-rpc/web/app.py +609 -0
  278. package/server/whatsapp-rpc/web/requirements.txt +6 -0
  279. package/server/whatsapp-rpc/web/rpc_client.py +427 -0
  280. package/server/whatsapp-rpc/web/static/openapi.yaml +59 -0
  281. package/server/whatsapp-rpc/web/templates/base.html +150 -0
  282. package/server/whatsapp-rpc/web/templates/contacts.html +240 -0
  283. package/server/whatsapp-rpc/web/templates/dashboard.html +320 -0
  284. package/server/whatsapp-rpc/web/templates/groups.html +328 -0
  285. package/server/whatsapp-rpc/web/templates/messages.html +465 -0
  286. package/server/whatsapp-rpc/web/templates/messaging.html +681 -0
  287. package/server/whatsapp-rpc/web/templates/send.html +259 -0
  288. 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>