Erste SchritteLeitfädenAgentenübergreifender Workflow

Guide

Agentenübergreifender Workflow

Übergeben Sie eine Entscheidung, eine Implementierungskorrektur und begrenzten Kontext zwischen benannten Agenten unter Verwendung der bestehenden SDK- und MCP-Verträge.

Eine Übergabe, zwei bestehende Oberflächen

Eine agentenübergreifende Übergabe fügt keine neue API hinzu. Der schreibende Agent kann die Hilfsprogramme des TypeScript-SDK-Workflows taskStart, recordDecision, recordBugFix und taskEnd verwenden; der empfangende Agent kann das MCP-Tool recall_context oder die SDK-Methode recallContext nutzen. Die nachfolgenden Agentennamen sind Zuordnungswerte, die in bestehenden Anfragen übertragen werden, während der API-Schlüssel oder die OAuth-Genehmigung sowie die Berechtigungsbereiche memory:read / memory:write weiterhin den Zugriff autorisieren.

  • Claude schreibt die Entscheidung über seinen verbundenen Adapter oder SDK-Client.
  • Codex ruft den begrenzten Kontext ab, zeichnet die Korrektur auf und schließt seine Aufgabe ab.
  • Claude ruft recall_context erneut auf und erhält die geteilte Entscheidung und Korrektur, sofern der authentifizierte Eigentümer und der angeforderte Bereich dies gestatten.

Die Übergabe-Zeitleiste

Die Lebenszyklus-Reihenfolge ist taskStart → recall_context → recordDecision → recordBugFix → taskEnd → recall_context eines anderen Agenten. taskStart und taskEnd werden standardmäßig auf einen working-Speichertyp mit dem Status started und completed gesetzt; recordDecision und recordBugFix verwenden standardmäßig semantic-Speicher. Jeder SDK-Erfassungshelfer wird zu CaptureResult aufgelöst, sodass ein Aufrufer shouldCapture prüfen muss, bevor er davon ausgeht, dass ein Speicher geschrieben wurde.

1. Claude: client.taskStart(...)
2. Codex: recall_context({ query, max_items, max_tokens })
3. Claude: client.recordDecision(...)
4. Codex: client.recordBugFix(...)
5. Codex: client.taskEnd(...)
6. Claude: recall_context({ query, max_items, max_tokens })

Entscheidung mit dem SDK schreiben

Die SDK-Methoden verwenden die vorhandenen AgentWorkflowOptions-Felder. Behalten Sie source, agentId und agentInstanceId stabil, damit die Herkunftszuordnung erhalten bleibt.

const scope = 'memory-os';
const sessionId = 'handoff-session-1';
const taskId = 'handoff-1';

await claude.taskStart('Review the deployment adapter', {
  source: 'claude', sessionId, taskId, scope,
});
const decision = await claude.recordDecision(
  'Use the hosted network MCP transport for remote agents.',
  { source: 'claude', sessionId, taskId, scope },
);
if (!decision.shouldCapture) {
  throw new Error('Decision was not captured: ' + decision.reason);
}

Kontext abrufen, korrigieren und Aufgabe abschließen

MCP recall_context ist das begrenzte Multi-Memory-Kontextpaket und erfordert memory:read. Die recallContext-Methode des SDK ruft POST /v1/recall/context auf und gibt das strukturierte JSON-Objekt zurück. Codex kann jede der beiden Oberflächen für den Lesevorgang nutzen und anschließend die vorhandenen SDK-Hilfsprogramme für die Fehlerkorrektur und den Aufgabenabschluss verwenden.

const context = await codex.recallContext(
  'deployment adapter decision and current bug',
  { scope, maxItems: 6, maxTokens: 1200, preferWorking: true },
);

await codex.recordBugFix(
  'Fixed streamable-http token identity fallback.',
  { source: 'codex', sessionId, taskId, scope },
);
await codex.taskEnd(
  'Deployment adapter fix completed for handoff.',
  { source: 'codex', sessionId, taskId, scope },
);
console.log(context.version, context.items);

Der äquivalente MCP-Lesevorgang

Verwenden Sie auf der öffentlichen MCP-Oberfläche das vorhandene Tool mit Unterstrich und seine öffentlichen snake_case-Argumente: query, max_items und max_tokens. Das verbundene Profil stellt den authentifizierten Eigentümer und die Agentenidentität bereit; der Server versieht zurückgegebene Elemente mit dem Agentengrenzen-Objekt. max_items und max_tokens begrenzen das gesamte Kontextpaket. Das Tool gibt eine öffentliche Textantwort zurück, die mit ### XMemo Context beginnt.

recall_context({
  query: "deployment adapter decision and current bug",
  max_items: 6,
  max_tokens: 1200
})

Die Grenzfelder lesen, nicht nur den Inhalt

Das Abrufergebnis wird mit dem bestehenden Agentengrenzen-Objekt annotiert. Wenn Codex einen mit agent_id=claude geschriebenen Speicher liest, ist die Beziehung other_agent und die Eigentümerschaft other_agent; wenn die logische agent_id übereinstimmt, aber der Installations-Hash abweicht, lautet die Beziehung same_agent_other_instance. Stimmen sowohl agent_id als auch agent_instance_id_hash überein, ist es self. boundary_authority bleibt attribution_only, und current_agent_trust ist token_bound nur dann, wenn die Identitätsquelle token-gebunden ist; andernfalls lautet sie client_asserted.

{
  "relation": "other_agent",
  "ownership": "other_agent",
  "current_agent_id": "codex",
  "current_agent_trust": "client_asserted",
  "boundary_authority": "attribution_only",
  "memory_agent_id": "claude",
  "explanation": "memory agent_id differs from this caller"
}

Mit demselben Bereich und einer begrenzten Abfrage fortfahren

Claudes nachfolgender Abruf verwendet dasselbe authentifizierte Konto und denselben Bereich, jedoch seine eigenen agent_id- und agent_instance_id-Werte. Der Speicher bleibt nur dort geteilt, wo die Anmeldedaten des Aufrufers, der Bereich memory:read, die Eigentümergrenze und die angeforderten Abruffilter dies zulassen; eine Agentengrenzen-Bezeichnung ist ein Zuordnungsnachweis, keine Autorisierungsumgehung.

recall_context({
  query: "deployment adapter decision, Codex fix, and handoff status",
  max_items: 6,
  max_tokens: 1200
})
# Inspect the returned context and boundary summary before continuing.

Quelle: Hilfsprogramme für den TypeScript-SDK-Workflow