Dokumentation
KI-Assistent
Von der Anwendung verwaltete projektbezogene Konversationen, typisierte CAD/CAM-Aktionen, explizite Berechtigungen und Anbieteranmeldeinformationen.
Automatisch aus dem Englischen übersetzt. Englisches Original ansehen
Assistenzdienste
@cadcamfun/ai bietet Modellzugriff, Konversationsereignisse, den Aktionskatalog, Eingabeaufforderungen, Fertigkeiten, Kontextassemblierung und Hostintegration. Die Standard-Konversations-Engine ist eingebettetes Nikcli. AI SDK v7 bietet direkte Text-, Streaming- und strukturierte Ausgabeaufrufe. Der Sidecar fügt Handler für Projektmutationen, Bibliotheken, Verlauf und Anwendungsspeicher ein.
Chat kann ein Projekt durch registrierte Aktionen überprüfen und ändern. Zustandslose Titelgenerierung, Designanalyse, Parameterempfehlungen, G-Code-Optimierung und Zusammenfassungen von Designvorschlägen geben Ratschläge oder strukturierte Ausgaben zurück; Diese Dienstmethoden speichern keine Projektänderungen. Überprüfen Sie die generierten Bearbeitungsempfehlungen durch deterministisches CAM und Verifizierung, bevor Sie sich darauf verlassen.
Gespräche und Sitzungskontrollen
POST /api/ai/chat/stream gibt typisierte Ereignisse für Text, Begründung, Turn-/Schrittstatus, Werkzeugaufrufe und -ergebnisse, Diagnosen, Fragen, Berechtigungsanfragen, Wiederholungsversuche, Kontextänderungen, Ziele, Abschluss und Fehler aus. Client-Sitzungs-IDs sind an Host-Sitzungen gebunden und werden anhand ihres Projekts überprüft. Behalten Sie die Sitzungs-ID bei, um das gleiche Gespräch fortzusetzen.
POST /api/ai/sessions/state stellt den Besetztstatus, den angesammelten Text und die Aufgabeninformationen nach einem getrennten Stream wieder her. /api/ai/chat/queue gibt eine Fortsetzung eines aktiven Gesprächs zu; /api/ai/chat/abort stoppt die Runde und die damit verbundenen Arbeiter. Durch das Entfernen einer Sitzung werden die untergeordneten Sitzungen abgebrochen und zusammengeführt, bevor die Hostsitzung entfernt wird.
/api/ai/sessions/control supports status, detailed context inspection, compaction, memory consolidation, task cancellation, permission decisions, and answering or rejecting pending questions. Anfragen werden mit der übergeordneten Konversation und den zugelassenen untergeordneten Sitzungen abgeglichen. Eine Frage, die nicht mehr offen ist, kann nicht durch die Wiederverwendung ihrer alten Kennung beantwortet werden.
Direkte Modellaufrufe wiederholen vorübergehende Anbieterausfälle mit der gleichen Kurve wie nikcli: Die erste Verzögerung beträgt 2 Sekunden und verdoppelt sich bei jedem Versuch, dem eigenen eines Anbieters retry-after der Header wird berücksichtigt, und ohne einen solchen Header überschreitet die Verzögerung niemals 30 Sekunden. Standardmäßig führt eine Anfrage höchstens fünf Aufrufe durch, einschließlich des ersten; Die retryAttempts die Einstellung kann dies überschreiben (packages/ai/src/retry.ts, direct-model.ts). Wenn die Modellverbindung mitten in der Runde unterbrochen wird, wird die Chat-Schleife bis zu fünf Mal mit demselben Backoff von 2–30 Sekunden fortgesetzt und fordert das Modell auf, fortzufahren, ohne abgeschlossene Schritte zu wiederholen.
Anbieter und Referenzen
GET /api/ai/providers listet Anbietermetadaten und konfigurierten Status auf; GET /api/ai/models macht den Modellauswahlkatalog mit optional verfügbar configuredOnly=true. Lesevorgänge im eingebetteten Hostkatalog werden eine Minute lang zwischengespeichert. Konfiguration und Richtlinie beeinflussen, welche Anbieter aufgelistet und verwendbar sind.
Anmeldeinformationen festlegen mit PUT /api/ai/credentials und entfernen Sie sie mit DELETE /api/ai/credentials/:provider. Schlüssel dürfen nicht leer sein und eine bereitgestellte Basis-URL muss HTTP oder HTTPS sein. Die direkte Modellfabrik unterstützt Anthropic, OpenAI, MiniMax und das AI-Gateway. Andere Anbieter-IDs erfordern für direkte Aufrufe eine OpenAI-kompatible Basis-URL. Der eingebettete Host verwendet seinen eigenen Anbieterkatalog und sein eigenes Routing.
Der Sidecar behält die Anmeldeinformationen bei <dataDir>/ai/credentials.json verwenden einer temporären Datei, Nur-Eigentümer-Modus 0600 und Umbenennen. Eine fehlende oder beschädigte Datei wird als leer angezeigt. Ein fehlgeschlagener Persistenzschreibvorgang lässt den Schlüssel für den aktuellen Prozess verfügbar, garantiert jedoch nicht, dass er den Neustart übersteht. Statusantworten legen den Konfigurationsstatus und nicht die Rohschlüssel offen.
Anmeldeinformationen werden mit dargestellt Redacted innerhalb von Diensten gespeichert und über eine bereichsbezogene Anmeldeinformationssenke an den Host weitergegeben. Durch das Schließen des Bereichs wird die Kopie des Hosts gelöscht. Anmeldeinformationsänderungen aktualisieren eine Revision, die zur Unterscheidung zwischengespeicherter zustandsloser Ergebnisse verwendet wird.
Die Standardmodellstufe ist balanced, und MiniMax-Anfragen gehen an https://api.minimax.io/v1 es sei denn CADCAMFUN_AI_MINIMAX_BASE_URL überschreibt es (packages/ai/src/models.ts). Der Modellkatalog stammt aus der Öffentlichkeit https://models.dev/api.json endpunkt nur, wenn die zwischengespeicherte Datei fehlt und der Netzwerkzugriff erlaubt ist; Es werden keine Anmeldeinformationen gesendet, die Antworten sind auf 8 MiB begrenzt und ein Text mit weniger als 20 Anbietern wird als gekürzt abgelehnt.
Aktionen und Berechtigungen
Der Aktionskatalog deklariert jeden Aktionsbezeichner, jedes Parameterschema, jeden Effekt und jeden Ausführungspfad. Tools gruppieren verwandte Aktionen hinter einem erforderlichen action feld. Der Host validiert die Tool-Eingabe und Sidecar-Handler führen eine Domänenvalidierung und Ressourcenzugriffsprüfungen durch, bevor Änderungen übernommen werden.
Berechtigungsmodi sind approve, ask, und auto. Sie wirken sich darauf aus, wie normale Werkzeugaufrufe zugelassen werden. Werkzeuge, die destruktive Aktionen enthalten, unterliegen in jedem Modus einer menschlichen Genehmigungsregel. Ein Eingabeflag wie confirm: true ersetzt diese Erlaubnisanfrage nicht. Der Host stellt keine uneingeschränkten Shell- oder Dateibearbeitungstools als Ersatz für Anwendungsaktionen zur Verfügung.
Richtlinien in <dataDir>/ai/policy.json beschränken Sie die Nutzung von Anbietern, Tools und Bridge-Zugriffen. Sie werden von der Dienstkonfiguration geladen; Gehen Sie nicht davon aus, dass durch das Bearbeiten der Datei ein bereits ausgeführter Dienst aktualisiert wird. Projektbezogene Scratch-Verzeichnisse und isolierte Nikcli-Konfiguration halten den eingebetteten Host vom Standalone-Agent-Status eines Benutzers getrennt.
Die Fähigkeiten stellen CAD/CAM-Playbooks und vom Benutzer verfasste Anweisungen bereit. Sie leiten den Einsatz vorhandener Tools; Durch das Hinzufügen eines Skills wird keine neue Mutations-API hinzugefügt. Die Skills-HTTP-Endpunkte listen, speichern und löschen unterstützte Benutzer-Skill-Inhalte.
Registrierte Werkzeuggruppen
Die integrierten Gruppen sind cad, cad_edit, cam, cam_edit, library, parts, library_edit, memory, memory_edit, research, vcs, vcs_edit, und agent. cam_verify stellt die von der Verifiziererrolle benötigte Generierungs- und Verifizierungsteilmenge bereit, ohne das vollständige CAM-Bearbeitungstool zu gewähren.
Durch die Werkzeuggruppierung bleiben die Wirkungsgrenzen erhalten. Die schreibgeschützte Geometrieprüfung, die Bibliothekssuche und der Speicherabruf erfolgen getrennt von Änderungen an diesen Ressourcen. Die injizierte Registry kann auch Erweiterungstools zulassen; Doppelte Identifikatoren werden abgelehnt.
Entdecken Sie den aktuellen Katalog
GET /api/ai/actions gibt Werkzeugbeschreibungen, Aktionsnamen und -arten sowie JSON-Parameterschemata für externe Aufrufer zurück. Verwenden Sie es, um die Aktionen der laufenden Anwendung zu ermitteln, anstatt eine statische Liste in einen Client zu kopieren. POST /api/ai/actions/invoke nimmt eine Projekt-ID, eine Tool-ID und eine Eingabe mit dem Aktionsdiskriminator entgegen.
Integrierte Katalogeinträge werden unter verwaltet packages/ai/src/actions. Beispiele hierfür sind CAD-Inspektion und parametrische Prüfungen, CAD-Bearbeitungen, CAM-Planung und -Fertigung, Bibliothekssuche und -aktualisierungen, Projektspeicher, Forschung und VCS-Vorschläge. Ein Beitrag, der einen Anwendungsdienst erfordert, gibt ein nicht verfügbares Ergebnis zurück, wenn dieser Host seinen Handler nicht bereitgestellt hat.
Öffentliche Integrations-APIs
ACTION_CATALOGUE, ACTION_TOOL_IDS, EXPOSED_TOOL_IDS, actionById, toolKind, und runAction unterstützung von Katalogkonsumenten. ToolHandlers ist der Sidecar-Integrationsvertrag; ToolRegistry stellt integrierte und Erweiterungstools zusammen. AiService stellt Konversationen, Modellmetadaten, einmalige Aufrufe und Sitzungsvorgänge bereit.
assembleContext erstellt Turn-Kontext mit einem Standard-Gesamtbudget von 24,000 Zeichen. Es ordnet aktuelle Anforderungen, aktuelle Beobachtungen, UI-Snapshots, Speicher und unterstützende Referenzen, dedupliziert nach Identität und Inhalt und zeichnet ausgelassene oder abgeschnittene Quellen auf. Dieses Kontextbudget ist vom vollständigen Token-Fenster und dem Host-Komprimierungsschwellenwert des Modells getrennt.
Hintergrundarbeit und Beweise
Der Laufzeitplaner ermöglicht vier aktive Hintergrundaufgaben und sechzehn Aufgaben in der Warteschlange. Aufgaben gehören einem Projekt und einer übergeordneten Sitzung. Durch die Stornierung bleibt das aktive Eigentum erhalten, bis ein Arbeitnehmer aufhört; Durch das Stoppen oder Löschen des übergeordneten Elements wird auch die damit verbundene Arbeit gestoppt. Die Wiederherstellung des Lesevorgangs ist auf zwei Versuche beschränkt, während unterbrochene Bearbeitungsarbeiten als unsicher markiert und nicht blind wiederholt werden.
Der Erfolg eines Assistententools ist ein Ergebnis, das es zu überprüfen gilt. CAD-Operationen können Teilgeometriediagnosen zurückgeben; CAM-Artefakte haben ihre eigenen Ansprüche und Release-Level; Verlaufsdienste erzwingen geschützte Zweige. Ein Gesprächstext, eine als erledigt markierte Aufgabe und ein geometrisches Überprüfungsergebnis beschreiben unterschiedliche Beweise.
Der an das Modell gesendete Projektkontext ist budgetiert: Ein gespeichertes Projektkontextdokument kann bis zu 8,000 Zeichen enthalten, von denen 2,000 die Eingabeaufforderung erreichen, wobei jeweils 1,500 Zeichen für den Projektspeicher und die Benutzergewohnheiten stehen. Projektnotizen, die älter als 90 Tage sind und auf die der Projektkontext nicht verweist, werden gelöscht, wenn eine Sitzung beendet wird (packages/ai/src/project-context.ts).
Laufzeitauswahl
CADCAMFUN_AI_HOST wählt nikcli standardmäßig oder direct. Der direkte Pfad verwendet AI SDK-Aufrufe ohne die persistente Agent-Tool-Schleife und den speziellen Scheduler des eingebetteten Hosts. Zustandslose Vorgänge nutzen den direkten Modelldienst, auch wenn der eingebettete Host aktiviert ist.
Die XDG-Verzeichnisse des Hosts und die optionale Home-Override-Verzeichnis liegen unter Root <dataDir>/ai/nikcli. Das Laden der Projektkonfiguration und nicht verwandte geerbte Agenteneinstellungen werden vor dem SDK-Import deaktiviert oder bereinigt. Sein Arbeitsbereich ist ein Scratch-Verzeichnis pro Projektanwendung und nicht das Quellverzeichnis des Benutzers.
Eigenständiger Nikcli-Zugriff
@cadcamfunv2/cadcamfun-nikcli-plugin verbindet eine eigenständige Nikcli mit einer laufenden Anwendung. Konfigurieren Sie es url, token, und Standard projectId, oder verwenden CADCAMFUN_URL, CADCAMFUN_TOKEN, und CADCAMFUN_PROJECT. Geben Sie ein von der Anwendung ausgegebenes, bereichsbezogenes Bridge-Token für den Zugriff von außen an.
Bridge-Token sind auf ein Projekt und schreibgeschützte oder Lese-/Schreibaktionen beschränkt. Sie sind standardmäßig auf 30 Tage ausgelegt, haben eine Gültigkeit von 1–365 Tagen, können aufgelistet und widerrufen werden und geben ihr Geheimnis erst preis, wenn es herausgegeben wird. Sie lassen nur die beiden Aktionsbrückenrouten zu. Die Politik kann die sichtbaren Instrumente und Maßnahmen weiter einschränken.
Das Plugin ruft den Katalog aus der Anwendung ab und konvertiert seine Schemata in Nikcli-Tool-Argumente. Destruktive Aktionen werden auch mit einem Bestätigungsflag und in Bearbeitung abgelehnt agent delegationstool ist ausgeschlossen. Schreibfähige Plugin-Erweiterungstools werden über diese externe Brücke nicht verfügbar gemacht. HTTP 401 meldet ein abgelehntes Token; Aktionsablehnungen geben lesbare Fehlerergebnisse zurück.
Implementierungskarte
service.ts besitzt anwendungsorientierte KI-Operationen; direct-model.ts besitzt AI SDK-Aufrufe; credentials.ts besitzt Schlüsselstaat; nikcli/ besitzt Isolation, Sitzungen, Richtlinien, Kontext und Arbeiter; actions/ und tools/ eigene Fähigkeitsdefinitionen und Adapter. Sidecar services/ai.ts kabel-Projektabwickler und -Lagerung. packages/nikcli-plugin besitzt den externen HTTP-Client.
Ein Gespräch beginnen und wieder aufnehmen
Mit einem laufenden Sidecar und einem konfigurierten Modell öffnet diese Anfrage eine Konversation, ohne gespeicherten Arbeitsbereichskontext einzufügen. Satz CADCAMFUN_URL zur erkannten Loopback-Basis-URL und CADCAMFUN_TOKEN zu seinem aktuellen Anwendungstoken. Die folgende Sitzungskennung wird vom Kunden ausgewählt. Bewahren Sie es für spätere Zwecke auf.
curl --no-buffer --fail-with-body \
-H "Authorization: Bearer $CADCAMFUN_TOKEN" \
-H "Content-Type: application/json" \
--data '{"message":"Explain the difference between G0 and G1.","sessionId":"inspection-demo","includeContext":false,"mode":"gcode"}' \
"$CADCAMFUN_URL/api/ai/chat/stream" Geben Sie für einen Projektzug auch dessen Echtheit an projectId, und optional a drawingId die zu diesem Projekt gehören. Die Zeichnung bindet die Turn-Werkzeuge an diese Zeichnung. Die Wiederverwendung einer Sitzung unter einem anderen Projekt oder Konto wird abgelehnt.
curl --fail-with-body \
-H "Authorization: Bearer $CADCAMFUN_TOKEN" \
-H "Content-Type: application/json" \
--data '{"sessionId":"inspection-demo"}' \
"$CADCAMFUN_URL/api/ai/sessions/state" Die zurückgegeben busy, text, fakultativ events, und tasks die Ansicht rekonstruieren; Durch die Wiedergabe dieser gespeicherten Ereignisse werden die Tools nicht erneut ausgeführt. Um die Arbeit zu stoppen, senden Sie einen expliziten Abbruch. Das Schließen des Streams allein führt nicht dazu, dass die Mitarbeiter der Konversation beitreten.
Quelle: packages/api/src/groups/ai.ts, apps/sidecar/src/http/ai.ts, und packages/ai/src/service.ts.
Behandeln Sie Ereignisse, ohne den Status zu verlieren
| Ereignis | Verbraucherverhalten |
|---|---|
delta / reasoning | Anhängen text zum Text- oder Argumentationskanal der passenden Sitzung. |
tool_call / tool_result | Korrelieren nach callId; überprüfen ok und behalten Sie die Diagnose unabhängig vom Assistententext bei. |
permission_request | Zeigen Sie die Anfrage und Antwort mit ihren Anfrage-/Sitzungs-IDs und an once, always, oder reject. |
question_request | Bewahren Sie die Anfrage-ID und die Fragen auf; Senden Sie ein Antwortarray pro Frage über die Sitzungssteuerung. |
done | Verwenden Sie final text und optionale Verwendung als fertige Antwort; Hängen Sie nicht den gesamten endgültigen Text an bereits akkumulierte Deltas an. |
error | Anzeige message mit config, provider, aborted, oder internal einstufung. |
heartbeat | Halten Sie die Verbindung aufrecht, ohne Inhalte hinzuzufügen oder den Zug für abgeschlossen zu erklären. |
Sitzungssteuerelemente akzeptieren nur ausstehende Berechtigungs-/Frage-IDs in dieser Konversation oder ihren untergeordneten Sitzungen. Eine Frage erfordert nicht leere Antworten; Eine Single-Choice-Frage lehnt mehrere ausgewählte Werte ab und eine Frage, die keine benutzerdefinierten Antworten zulässt, akzeptiert nur die aufgeführten Optionsbezeichnungen.
Quelle: packages/api/src/ai-events.ts, packages/ai/src/nikcli/session-controls.ts, und packages/ai/src/heartbeat.ts.
Anhänge und Benutzerkenntnisse
Jede Chat-Anfrage akzeptiert bis zu fünf Anhänge. Unterstützte Bilder sind PNG, JPEG, WebP und GIF mit jeweils einem Limit von 5 MiB; PDFs haben ein Limit von 10 MiB. Textanhänge akzeptieren bis zu 2,000,000 Zeichen, wobei Texte mit bis zu 6,000 Zeichen auch inline enthalten sind. Nicht unterstützte Dateien erzeugen einen Ablehnungsgrund, anstatt stillschweigend zu verschwinden.
Textanhänge werden in einem projektbezogenen In-Memory-Speicher für Importtools gespeichert: höchstens 32 Namen und 8,000,000 Zeichen pro Projekt und 32,000,000 Zeichen in höchstens 64 gespeicherten Projekten. Durch die Wiederverwendung eines Namens wird dessen vorheriger Text ersetzt. Durch einen Neustart des Dienstes bleibt dieser Anhangspeicher nicht erhalten. Eine Nichtübereinstimmung der PDF-Funktionen wird dem Modell von der Anbietertransformation gemeldet.
Benutzerfähigkeitsnamen bestehen aus Kleinbuchstaben/Ziffern, die durch Bindestriche verbunden sind, maximal 64 Zeichen. Die Beschreibungs- und Textbegrenzungen sind jeweils 300 und 20,000 Zeichen; Es können höchstens 50 Benutzerfähigkeiten geladen werden. Integrierte Skills können nicht über die Benutzer-Skill-API entfernt werden. Eine gespeicherte Fertigkeit live das Ergebnis gibt an, ob das erneute Laden des Hosts wirksam wurde.
Quelle: packages/ai/src/attachments.ts, packages/ai/src/skills/user.ts, und apps/sidecar/src/http/ai.ts.
Diagnostizieren Sie Ausfälle von Assistenten
- Kein konfiguriertes Modell: überprüfen
/api/ai/statusund/api/ai/providers, und legen Sie dann einen Schlüssel für einen aufgelisteten Anbieter fest. Ein konfiguriertes Flag beweist, dass ein gespeicherter Schlüssel vorhanden ist, nicht, dass der Anbieter ihn akzeptiert hat. - Unbekannter Anbieter oder ungültige URL: verwenden Sie eine angekündigte Anbieter-ID und eine HTTP(S)-Basis-URL. Ein nicht integrierter Direktanbieter benötigt zusätzlich zu seinem Schlüssel einen kompatiblen Endpunkt.
- Sitzung nicht zugänglich: wiederherstellung unter Verwendung der ursprünglichen Projekt-/Konto-/Sitzungsidentität. Erfinden Sie keine Ersatzprojekt-ID für eine vorhandene Hostsitzung.
- Eine Runde wartet auf unbestimmte Zeit: überprüfen Sie den Status der Sitzungssteuerung auf ausstehende Berechtigungen oder Fragen, bevor Sie eine doppelte Eingabeaufforderung erneut versuchen. Verwenden Sie einen expliziten Abbruch, um die Runde abzubrechen und sich ihren Arbeitern anzuschließen.
- Ein Tool hat das Modell teilweise verändert: überprüfen Sie es
tool_diagnostic, einschließlichmutationApplied, und lesen Sie dann die aktuelle Zeichnung. Wenn Sie eine Bearbeitungsaktion wiederholen, ohne das Ergebnis zu überprüfen, kann es zu einer Duplizierung der Geometrie kommen.
Tool-Ergebnisse und eingegebene Fehler behalten die fehlgeschlagene Phase bei. Ein Anbieterfehler nach erfolgreichen Tools führt nicht zu einem Rollback dieser Projektmutationen. Deterministische CAM- und Verlaufsprüfungen bleiben getrennt von der Modellantwort verfügbar.
Referenz zum Assistant-Endpunkt
Alle Hilfsrouten finden Sie unten /api/ai und erfordern das Anwendungsträgertoken. Ein Bridge-Token für ein eigenständiges Nikcli öffnet nur die Aktionslisten- und Aufrufrouten und nur für sein Projekt.
| Route | Zweck |
|---|---|
POST /api/ai/chat/stream | Starten Sie eine Streaming-Runde. Die Antwort ist ein SSE-Stream von Assistentenereignissen. |
POST /api/ai/chat/queue | Stellen Sie eine Folgenachricht für eine ausgelastete Sitzung in die Warteschlange. |
POST /api/ai/chat/abort | Brechen Sie die laufende Runde einer Sitzung ab. |
POST /api/ai/permission/reply | Beantworten Sie eine Erlaubnisanfrage: once, always, oder reject. |
POST /api/ai/sessions/state, /sessions/control, /sessions/remove | Sitzungsstatus lesen, Sitzung steuern, Sitzung entfernen. |
GET /api/ai/status, /models, /providers, /agents, /prompts | Entdeckung: Bereitschaft, Modellkatalog, Anbieter mit ihrem Konfigurationsstatus, spezialisierte Agenten, zeitnahe Vorschläge. |
PUT /api/ai/credentials, DELETE /api/ai/credentials/:provider | Speichern oder löschen Sie die Anmeldeinformationen des Anbieters. |
GET/PUT /api/ai/skills, DELETE /api/ai/skills/:name | Benutzerfähigkeiten auflisten, speichern und löschen. |
GET /api/ai/actions, POST /api/ai/actions/invoke | Aktionskatalog und direkter Aufruf (wird auch von der Nikcli-Bridge verwendet). |
GET/POST /api/ai/bridge/tokens, DELETE /api/ai/bridge/tokens/:id | Gültigkeitsbereichsbezogene Bridge-Token ausstellen, auflisten und widerrufen. |
POST /api/ai/completion | Einzelabschluss: prompt, systemPrompt, model, temperature; kehrt zurück text und model. |
POST /api/ai/title | Titel für einen Gesprächsauszug. |
POST /api/ai/design-analysis | Vorschläge mit confidence, priority (niedrig/mittel/hoch) und kind (optimierung/Warnung/kritisch). |
POST /api/ai/machining-parameters | Cutting speed (m/min), feed (mm/min), depth of cut (mm), stepover (%), coolant (flood/mist/none), engagement (conventional/climb), and warnings. |
POST /api/ai/gcode-optimization | Optimierter G-Code mit zeilenspezifischen Änderungen und Gründen, geschätzten Zeit- und Werkzeugstandzeiteinsparungen sowie Notizen. |
POST /api/ai/design-suggestions | Vorschläge für den nächsten Schritt mit Titel, Begründung und nächstem Schritt. |
POST /api/ai/analyze-gcode | Probleme (Fehler/Warnung/Info mit Code, Linie und Meldung) und Statistiken: Linien, Eilgang- und Schnittbewegungen, Werkzeugwechsel und Grenzen. |
POST /api/ai/gcode, /toolpath-analysis, /feedback, /proxy | G-Code-Aktionen, Einblicke in den Werkzeugweg, Feedback und der Anbieter-Proxy. |
Modellgestützte Analyseantworten sind Modellausgaben in typisierter Form. Bei Werten wie Bearbeitungsparametern handelt es sich um Vorschläge zur Überprüfung anhand von Werkzeugdaten und Maschinengrenzen, nicht um verifizierte Schnittdaten.
Streaming-Anfragefelder
| Feld | Werte | Effect |
|---|---|---|
message | zeichenfolge | Die Nachricht des Benutzers für diesen Zug. |
sessionId | zeichenfolge | Eine bestehende Sitzung fortsetzen; weglassen, um ein neues zu beginnen. |
projectId | zeichenfolge | Projekt, dessen Kontext und Tools der Turn verwendet. |
drawingId | zeichenfolge | Auf die Zeichnung, auf die in diesem Zug gewirkt werden darf, darf eine Aktion erfolgen. Es wird mit dem Projekt verglichen, bevor der Zug zugelassen wird, und die Werkzeuge des Zuges wirken sich auf diese Zeichnung und nichts anderes aus. |
mode | general, cad, cam, gcode, toolpath | Schwerpunkt der Wende. |
permissionMode | auto, ask, approve | So werden Werkzeugberechtigungen angefordert. |
agent | zeichenfolge | Name des Fachagenten von /api/ai/agents. |
attachments | [{ name, mime?, data, encoding?: "base64" | "text" }] | Bis zu 5 Anhänge: Bilder bis zu 5 MB, PDFs bis zu 10 MB und Text bis zu 2,000,000 Zeichen (Textdateien mit bis zu 6,000 Zeichen werden ebenfalls in die Nachricht geschrieben). |
context, includeContext | zeichenfolge, boolescher Wert | Zusätzlicher Kontexttext und ob der zusammengesetzte Projektkontext einbezogen werden soll. |
model | modellauswahl | Überschreiben Sie das konfigurierte Modell für diesen Zug. |
Grenzen und Standardwerte
| Limit | Wert |
|---|---|
| Zusammengestelltes Kontextbudget | 24,000 Zeichen; Ein Block, der nicht passt, wird mit einer Markierung abgeschnitten, und ein Block, der weniger als 400 Zeichen abschneiden würde, wird stattdessen weggelassen |
| Projektkontextdokument | Bis zu 8,000 gespeicherte Zeichen, 2,000 an das Modell gesendet |
| Projektgedächtnis / Benutzergewohnheiten | Jeweils 1,500 Zeichen |
| Projektnotizen | Wird nach 90 Tagen bereinigt, wenn nicht im Projektkontext darauf verwiesen wird |
| An das Modell gesendete Werkzeugausgabe | 24,000 Zeichen |
| Pro Aufruf erstellte Elemente | 40 |
| Ausgabetoken | Maximal 32,000 |
| Herzschlag | Alle 5 Sekunden, während der Stream aktiv ist |
| Aktionen mit exakter Geometrie | 60-zweites Budget; genaue Berichte 1.5 Sekunden |
| Kernel-Jobs | 120-Sekunde Frist, Arbeitsbeginn inbegriffen |
| Hintergrundaufgaben | 4 aktiv, 16 in der Warteschlange, 2 Versuche für Lesearbeiter, erledigte Aufgaben werden 7 Tage aufbewahrt |
| Automatische Fortsetzungen | 50 pro Anfrage; Die Verbindung von 5 wird mit einem Backoff von 2–30 fortgesetzt |
| Direktanrufwiederholungen | 5 Aufrufe einschließlich des ersten; 2 s verdoppelt sich zu 30 s, ehrend retry-after |
| Benutzerkenntnisse | 50 Fähigkeiten; Name bis zu 64 Zeichen (durch Bindestriche verbundene Kleinbuchstaben), Beschreibung bis zu 300, Text bis zu 20,000 |
| Web-Suchabruf | 256 KB pro Antwort |
| Bridge-Token | Standardmäßig 30 Tage, maximal 365 Tage |
Lesen Sie das Ergebnis, nicht die Prosa
Das Ergebnis eines Tools ist in tool_result und tool_diagnostic ereignisse. Überprüfen Sie, ob eine Mutation angewendet wurde, bevor Sie der Zusammenfassung des Assistenten vertrauen.
Der vollständige Aktionskatalog
Der Assistent führt 83 deklarierte Aktionen in 13 Familien durch. Jede Aktion deklariert ihr Ergebnisschema und ihre effekte: was es über das Lesen des geöffneten Dokuments hinaus ändert oder bewirkt. Familien lesen (cad, cam, library, memory, research, vcs) haben meist keine Wirkung; ihre _edit gegenstücke ändern den dauerhaften Zustand. Die Effekte sind in Klammern aufgeführt.
| Familie | Zählen | Aktionen (Effekte) |
|---|---|---|
cad | 20 | describe, check, relations, grep, vision (schnittstelle), inspect_elements, inspect_layers, inspect_search, inspect_property, drawing, parametric_validate, parametric_inspect, parametric_test, parametric_dfm, parametric_exact, exact, assembly, parametric_fastener, parametric_recipe, parametric_from_element |
cad_edit | 12 | add (zeichnung), add_entities (zeichnung), modify (zeichnung), transform (zeichnung), group (zeichnung), delete (zeichnung), editor (schnittstelle+Zeichnung), import (zeichnung), parametric_create (zeichnung), parametric_update (zeichnung), parametric_recipe_create (zeichnung), parametric_convert (zeichnung) |
cam | 14 | plan_check, review, machine, operations, suggest, compare_setups, analyze, stock, vision (schnittstelle), chain_suggest, materials, cutting_data, manufacture, chain_status |
cam_edit | 6 | manufacture (operation+Programm), create (betrieb), update (betrieb), generate (programm), verify (bericht), stock_set (aktie) |
library | 5 | component_list, lookup_component, lookup_material, lookup_tool, lookup_machine_config |
parts | 3 | save (komponente), insert (zeichnung), delete (komponente) |
library_edit | 5 | upsert_material (bibliothek), upsert_tool (bibliothek), upsert_machine_config (bibliothek), set_default (bibliothek), delete (bibliothek) |
memory | 2 | recall, context_read |
memory_edit | 2 | remember (erinnerung), context_update (kontext) |
research | 2 | search (extern), read_attachment |
vcs | 3 | status, diff, list_pull_requests |
vcs_edit | 5 | start_change (geschichte), commit (geschichte), restore (geschichte+Zeichnung), open_pull_request (geschichte), run_workflows (arbeitsablauf) |
agent | 4 | start (aufgabe), list, read, cancel (aufgabe) |
| Effect | Bedeutung |
|---|---|
drawing, component, operation, program, stock, report | Persistente Konstruktions- oder Fertigungsdaten |
library, memory, context | Bibliotheksdatensätze, Projektspeicher, Arbeitsbereichskontext |
history, workflow | Versionskontrolle und Workflow-Ausführungen |
task | Der Delegationsplaner (Hintergrundagenten) |
interface | Der Editor oder das Ansichtsfenster auf dem Bildschirm; nicht hartnäckig |
external | Das Netzwerk (Webrecherche) |
Eine Leseaktion darf nur haben interface oder external; jeder Schreibvorgang benennt mindestens einen dauerhaften Effekt. Effekte werden pro Aktion deklariert und niemals von dem Tool abgeleitet, das sie implementiert.
So endet ein Aktionsaufruf
| Ergebnis | Wann |
|---|---|
succeeded | Die Aktion hat getan, was verlangt wurde. Einschließlich Lesevorgänge mit einem negativen Ergebnis, beispielsweise einer fehlgeschlagenen Prüfung. |
partial | Teil der Antwort oder des Stapels: complete: false, omitted > 0, nicht leer skipped, oder ein nextOffset weiterblättern |
refused | Nichts getan: ok: false mit einem Fehler oder Tag (ungültige Eingabe, verweigert, nicht verfügbar, nichts zu tun) |
conflict | Das Dokument ging weiter: ActionConflict oder Status stale/conflict. Überprüfen Sie es erneut, bevor Sie es erneut versuchen. |
cancelled | ActionInterrupted |
uncertain | ActionUncertain: ein Schreibvorgang wurde möglicherweise festgeschrieben, aber seine Antwort konnte nicht gelesen werden. Versöhnen Sie sich durch Inspektion; Versuchen Sie es niemals blind. |
Schreibvorgänge sind an eine Zeichnungsrevision gebunden. Ein festgeschriebener Schreibvorgang gibt eine zurück ActionCommitted quittung mit previousRevision und revision; ein Schreiben gegen ein abgestandenes expectedRevision kehrt zurück ActionConflict mit beidem expectedRevision und actualRevision. Die gleiche Klassifizierung (actionOutcome) wird vom Host, dem Codemodus, dem Desktop und der Bridge gemeinsam genutzt.
{
"ok": false,
"_tag": "ActionConflict",
"actionId": "cad_edit.modify",
"projectId": "…", "drawingId": "…",
"expectedRevision": 41, "actualRevision": 42,
"message": "…"
}