Agentic AI Atlasby a5c.ai
OverviewWikiGraphFor AgentsEdgesSearchWorkspace
/
GitHubDocsDiscord
iiRecord
Agentic AI Atlas · Agent Layer Gaps — Full Agent Stack
page:docs-agent-layer-gapsa5c.ai
Search record views/
Record · tabs

Available views

II.Record viewspp. 1 - 1
overviewarticlejsongraph
II.
Page overview

page:docs-agent-layer-gaps

Reference · live

Agent Layer Gaps — Full Agent Stack overview

Inspect the raw attributes, linked wiki pages, and inbound or outbound graph edges for page:docs-agent-layer-gaps.

PageOutgoing · 0Incoming · 1

Attributes

nodeKind
Page
sourcePath
docs/agent-layer-gaps.md
sourceKind
repo-docs
title
Agent Layer Gaps — Full Agent Stack
displayName
Agent Layer Gaps — Full Agent Stack
slug
docs/agent-layer-gaps
articlePath
wiki/docs/agent-layer-gaps.md
article
# Agent Layer Gaps — Full Agent Stack Comprehensive inventory of missing capabilities, stub implementations, and architectural weaknesses across agent-core (L4), agent-runtime (L5), agent-platform (L6), tasks-adapter, tools-adapter, transport-adapter, and babysitter-sdk. --- ## agent-core (L4) — 47 gaps ### Critical (blocks production use) | Gap | File | Description | |-----|------|-------------| | No streaming | `session.ts:200-257` | `prompt()` waits for full response, emits single `text_delta` with everything. No token-by-token streaming. | | No multi-turn history | `session.ts:217-223` | Messages rebuilt from scratch each call. No persistent conversation context across `prompt()` calls. | | Structured output follow-up work | `session.ts`, `types.ts` | Agent-core now exposes opt-in `json_object`/`json_schema` prompt output, provider request mapping, local parsing, and focused schema validation. Remaining gaps: full JSON Schema validator coverage and streaming structured-output integration (#575). | | Token usage discarded | `session.ts:163-177` | Parsed from API response but never returned to caller or tracked cumulatively. | ### High (major feature gaps) | Gap | File | Description | |-----|------|-------------| | Vision/multimodal follow-up work | `session.ts` | Agent-core now accepts direct prompt text/image URL/base64 content parts and maps them for OpenAI/Azure/Anthropic. Remaining gaps: streaming multimodal responses (#575), image-bearing `ToolResult` support (#588), and broader vision tool ergonomics. | | No tool AbortSignal | `types.ts:86-96` | Custom tools can't be cancelled by framework. Each must own its timeout. | | Token estimation remains heuristic | `context/token-estimator.ts` | Estimation is now provider/model-aware for OpenAI/Azure, Anthropic/Claude, and conservative unknown-model defaults, but still does not use exact provider tokenizer libraries or cost tracking. | | `initialize()` is no-op | `session.ts:196-198` | No connection warmup, no schema cache, no health check. | | No DI for LLM client | `session.ts:40-97` | Endpoint resolution hardcoded. Cannot inject custom fetch for testing/mocking. | | Browser tool fragile | `agenticTools/browser/tool.ts` | Global singleton, no connection pool, no resource limits, screenshot returns metadata not images. | | Web search hardcoded | `agenticTools/web/tools.ts:47-54` | DuckDuckGo HTML scraping only. No pluggable backend. Fragile to DOM changes. | | No error types | `agenticTools/shared/results.ts` | All errors → text strings. No `ToolNotFoundError`, `TimeoutError`, etc. | | Context summary is concatenation | `context/strategies/summary.ts:18-39` | No actual summarization. Evicted entries just joined with newlines. | ### Medium (architectural weaknesses) | Gap | Description | |-----|-------------| | Concurrent strategy naive | `Promise.allSettled` with no per-agent timeout, no partial results, no graceful degradation | | Group-chat moderator fragile | String matching for agent selection, no validation against agent list | | Handoff has no state passing | Second agent doesn't know what first agent did. No context transfer. | | No loop cancellation token | `run()` generator can't be externally cancelled | | Oversight is single-pass | `maxRetries = 0` hardcoded. Reviewer can reject but no retry mechanism. | | Delegation timeout ignored | `timeout` parameter accepted but never enforced | | No plugin/extension API | DeferredToolRegistry exists but minimally integrated | | No caching anywhere | Tool results, web fetches, schema fetches — nothing cached | | Hardcoded limits | 50MB output, 120s bash, 30s search — not configurable | | 7 test files for 59 sources | Agentic tools, error paths, loop strategies untested | | Endpoint resolution duplicates adapters | Provider handling reimplemented instead of shared | --- ## agent-runtime (L5) — 48 gaps ### Critical | Gap | File | Description | |-----|------|-------------| | K8s executor is stub | `execution/modes/kubernetes.ts:52-94` | Manifest builder only. No `kubectl apply`, no log streaming, no completion polling. Marks "running" without executing. | | No crash recovery | `daemon/lifecycle.ts:78-148` | Daemon death loses all pending work. No auto-restart, no watchdog. | | Crash recovery is partial | `daemon/lifecycle.ts`, `daemon/durableQueue.ts` | Trigger events can persist and replay through `DurableTriggerQueue`, but daemon death still has no auto-restart supervisor/watchdog flow. | | Resource budgets not enforced | `resources/manager.ts` | Limits checked but not blocking. Agents can exceed budgets. | | Telemetry has no export | `telemetry/provider.ts` | InMemoryTelemetryProvider only. Traces lost on process exit. No OTLP, no file export. | ### High | Gap | File | Description | |-----|------|-------------| | Process isolation is partial | `execution/modes/local.ts`, `execution/policy.ts` | ExecutionPolicy now removes default parent env inheritance and fails fast for unsupported local network/kernel sandbox guarantees. Local mode is still a host process and does not provide namespaces, chroot, seccomp, or capability isolation. | | No graceful drain | `daemon/lifecycle.ts:152-226` | SIGTERM + grace period, but no coordinated queue drain. Active runs waited but no cancellation signal. | | No hot reload | `daemon/lifecycle.ts` | Config changes require full restart. Queue/active runs lost. | | SSH — partial verification | `execution/modes/ssh.ts` | Strict host-key checking is now the default and `StrictHostKeyChecking=no` requires an explicit insecure policy opt-in. Retry, pooling, and keepalive are still missing. | | Docker — partial sandbox policy | `execution/modes/docker.ts` | Docker args now include secure defaults plus resource/network/DNS policy support. Live daemon availability and image verification preflight remain missing. | | External trigger sources are incomplete | `daemon/types.ts`, `daemon/loop.ts` | File/webhook/timer are hardened with durable retry/DLQ, dedupe windows, queue depth admission, and webhook rate limiting. Broker/chat/git trigger adapters are still missing. | | Background process isolation/backpressure is partial | `backgroundProcessRegistry.ts` | Background execution now uses ExecutionPolicy env/cwd handling, retained/dropped stream byte metadata, optional process-group termination with grace escalation, timeout status, pause/resume capability checks, dependency queueing, and lifecycle hook diagnostics. Remaining gaps are OS-enforced isolation and daemon-level graceful drain/crash recovery. | ### Medium | Gap | Description | |-----|-------------| | No CPU/memory/disk tracking | Only token/cost budgets. No system resource quotas. | | No admission control | No pre-flight budget check before effect dispatch. | | Cron advanced syntax is partial | Named days/months, timezone evaluation, standard macros, and `@reboot` are supported. `L` and `#N` calendar syntax remain unsupported. | | No event-driven triggers | File/webhook/timer only. No message queue (RabbitMQ/Kafka/SQS). | | Trigger rate limiting is local only | Webhook/loop admission supports local rate limits, dedupe windows, and queue caps. Distributed/adaptive throttling is still missing. | | No structured logging | Append-only JSON log. No levels, no filtering, no rotation. | | Health checks — no percentiles | Average latency only. No P50/P95/P99. | | No metrics export | Snapshots computed but never sent to monitoring (Prometheus, CloudWatch). | | No systemd/supervisor integration | Manual start/stop. No restart on reboot. | | No distributed tracing | No W3C trace context, no OTLP spans. | | No config migration | No version field. Schema changes break existing daemons. | | Limited test coverage | No daemon loop integration tests, no crash recovery tests. | --- ## agent-platform (L6) — 40+ gaps ### Critical (blocks platform viability) | Gap | File | Description | |-----|------|-------------| | MCP not integrated | `src/mcp/client/*` | Full MCP client, transport, executor implemented but NOT wired into orchestration. Tool routing disconnected. | | ConcurrentEffects not implemented | `src/harness/types.ts:30` | Capability declared but effects processed sequentially. No Promise.all batching. | | Breakpoints not integrated | `src/breakpoints/*` | Approval chains, delegation, postures defined but never invoked during orchestration. | | Cost tracking not integrated | `src/cost/effectCost.ts` | Per-effect cost aggregation exists but not called during effect resolution. | | Session budget enforcement partial | `src/session/cost.ts`, `src/harness/internal/createRun/orchestration/effects.ts` | Post-effect overlays now update session cost, mark thresholds, and set explicit auto-pause budgets paused; broader pre-dispatch admission control remains missing. | ### High | Gap | File | Description | |-----|------|-------------| | BackgroundEffects not implemented | `src/harness/types.ts:32` | Declared but no non-blocking effect dispatch. Orchestration blocks on every effect. | | MultiHarnessDispatch not implemented | `src/harness/types.ts:34` | No support for distributing effects across multiple harnesses. | | Session history partially wired | `src/session/history.ts`, `src/harness/internal/createRun/orchestration/effects.ts` | Post-effect decisions/context snapshots and external run summaries are captured; broader internal-orchestration summary coverage remains to be expanded. | | Session compaction partially triggered | `src/compression/compaction.ts`, `src/harness/internal/createRun/orchestration/effects.ts` | Post-effect overlays invoke compaction from estimated state size thresholds while preserving source journals/tasks. | | Capability router partially wired | `src/harness/capabilityRouter.ts`, `src/harness/internal/createRun/utils.ts` | Explicit task execution/policy hints can route through capability scoring; default dispatch remains compatibility-preserving. | | Model selection partially wired | `src/harness/modelSelection.ts`, `src/harness/internal/createRun/utils.ts` | Explicit `execution.model` hints can use model-aware harness selection; default routing is unchanged. | | Fallback chains partially wired | `src/harness/fallbackChains.ts`, `src/harness/internal/createRun/utils.ts` | Explicit fallback-chain metadata can select the next installed harness; runtime retry policy still needs broader integration. | | Sandbox policy not enforced | `src/governance/sandboxPolicy.ts` | Rules defined but not enforced on tool execution. | | MCP channels disconnected | `src/mcp/channels/*` | Allowlist, inbound queue, outbound sender exist but not connected to interaction routing. | | Streaming output not implemented | `src/harness/types.ts:93-100` | Type defined but no streaming callbacks in effect resolution. | ### Medium | Gap | Description | |-----|-------------| | Conditional task routing partially integrated | Process JavaScript can branch on `ctx.task` results; remaining work is making declarative task dependencies and route metadata first-class. | | Checkpointing partially integrated | SDK effect-group checkpoint metadata exists; process-level savepoint/replay contracts still need a durable public API. | | No rollback/undo | Reversible effects and compensating actions still need an explicit non-rollbackable vs rollbackable contract. | | Nested orchestration partially integrated | `subprocess` effects create child runs; child pending actions now use the same grouped dispatch path as top-level orchestration. | | No process versioning | Breaking changes in process definitions unmanaged. | | No multi-agent orchestration | No agent pools, discovery, or load balancing. | | No tool discovery/registry population | `deferredToolRegistry.ts` exists but not populated. | | No rate limiting per harness | No token bucket or sliding window. | | No process dependency management | Tasks within a process can't declare dependencies. | | Orchestration dispatch partially concurrent | Agent-platform groups same-iteration actions by `schedulerHints.parallelGroupId`, honors `maxConcurrency`/`executionStrategy`, preserves deterministic commit order, and routes per-action harness hints; broader agent-pool scheduling remains missing. | | Session context plan-phase coverage partial | Bounded session context is injected into planProcess prompts when a current harness session context is resolvable; sessions without resolvable context keep the old prompt shape. | | Daemon max concurrent runs defaults to 4 | Configurable via daemon config; the default may still need workload-specific tuning. | | Selection policies partially wired | `src/harness/selectionPolicies.ts` can be invoked by explicit task metadata/execution policy hints; default dispatch remains unchanged. | --- ## tasks-adapter (Human-in-the-Loop & Task System) — 51 gaps ### Critical (blocks agent stack integration) | Gap | File | Description | |-----|------|-------------| | Not wired into agent stack | `agent-core/tools/delegation.ts:86-98` | `task` tool uses generic `taskHandler` callback, NOT tasks-adapter. Breakpoints, responders, routing all disconnected from agent execution. | | MCP tools not auto-discovered | `agent-platform/mcp/client/toolRegistry.ts` | Marked "NOT INTEGRATED YET". tasks-adapter MCP server has 8 tools but agent harness doesn't know they exist. | | Breakpoint delegation disconnected | `agent-platform/breakpoints/delegation.ts:1-8` | Marked "NOT INTEGRATED YET". Webhook routing exists but not connected to tasks-adapter backends. | | Native agent-core tools wrapping tasks-adapter are partial | — | tasks-adapter now exposes MCP tools such as `create_todo`, `assign_task`, `search_tasks`, `add_comment`, `bulk_update_tasks`, `task_stats`, `export_tasks`, and `escalate`; direct agent-core tool wrapping and auto-discovery remain separate integration work. | | Approval chains not integrated | `agent-platform/breakpoints/approvalChains.ts` | Sequential/quorum approvals defined but never invoked during orchestration. | ### High (major task management gaps) | Gap | Description | |-----|-------------| | Task priorities are partially implemented | Breakpoint schema now has `priority` (`low`, `medium`, `high`, `critical`) and git-native search can filter/sort by priority. Routing policy integration remains follow-up work. | | Task dependencies are partially implemented | Breakpoint schema now has `dependsOn[]`; dependency-aware routing/blocking policy remains follow-up work. | | Search/filter API is partially implemented | Git-native now exposes `searchBreakpoints(query)` with text/status/priority/assignee/responder/tag/domain/date filters, sorting, and pagination. External backend parity remains capability-gated. | | Bulk operations are partially implemented | Git-native now supports bulk cancel/close/reassign/transition/approve with per-item results. External backend parity remains capability-gated. | | No subagent spawning via task system | Agent-to-agent delegation doesn't route through responder discovery/matching. | | No escalation chains | No fallback responders when initial responder times out. | | MCP tools are partially implemented | tasks-adapter exposes native task tools including `create_todo`, `assign_task`, `search_tasks`, `add_comment`, `bulk_update_tasks`, `task_stats`, `export_tasks`, and `escalate`; cancellation remains covered by breakpoint APIs rather than a dedicated native-task alias. | | Interactive forms are schema-only | Breakpoint schema includes form definitions/submissions, but no full conditional form UX or file review flow exists yet. | ### Medium | Gap | Description | |-----|-------------| | Task states are partially implemented | Breakpoint status now includes `assigned`, `in-progress`, `blocked`, and `escalated`; broader routing semantics remain follow-up work. | | Status history/timeline is partially implemented | Git-native appends history entries for create/assign/status/comment/answer operations. Cross-backend parity remains capability-gated. | | Notifications are schema-only | Notification provider config exists and is disabled by default; real email, Slack, Discord, and webhook dispatch remains follow-up work. | | Task metrics/SLA are partially implemented | Git-native computes deterministic status/priority counts and response/completion timing where available; responder performance analytics remain follow-up work. | | Discussion threads are partially implemented | Git-native supports comments on breakpoints and MCP exposes `add_comment`; richer threaded UX remains follow-up work. | | No offline queue | Server backend has no local fallback if server is down. | | State machine validation is partially implemented | Shared transition validation rejects invalid terminal-state changes and git-native uses it for lifecycle transitions. | | Audit log is partially implemented | Git-native appends audit entries for core task-management mutations. Cross-backend audit parity remains follow-up work. | | CLI commands are partially implemented | `tasks-adapter tasks search|assign|close|comment|stats|export` cover local git-native task-management operations. Dedicated approve/templates/rules commands remain follow-up work. | | Only 3 backends | git-native, server, github-issues. Missing: database, S3, Slack, Linear/Jira. | | No schema migration | Can't upgrade breakpoint format across versions. | | Responder matching not integrated | `responder-matcher.ts` exists but only used in CLI, not in agent routing decisions. | --- ## tools-adapter (Unified Tool Dispatch) — NOT INTEGRATED tools-adapter provides ToolRegistry, ToolDispatcher (policy-driven routing), McpBridge, and schema translation for all providers (Anthropic, OpenAI, Google, Bedrock). None of it is wired into the agent stack. ### Critical | Gap | Description | |-----|-------------| | Not used by agent-core | agent-core has DeferredToolRegistry (custom two-tier registry). tools-adapter's ToolDispatcher would provide unified dispatch policy across builtin, MCP, and plugin tools. | | Not used by agent-platform | agent-platform has McpToolRegistry + McpToolExecutor (separate from tools-adapter). No unified tool dispatch mechanism. | | 3 registries, no unification | DeferredToolRegistry (L4) + McpToolRegistry (L6) + ToolRegistry (tools-adapter). Should be one system. | | Hook bridge is no-op | `ToolHookBridge` is `NoopToolHookBridge`. PreToolUse/PostToolUse hooks never fire. No hooks-adapter integration. | | McpBridge is declarative-only | Registers MCP tool definitions but no runtime server lifecycle management. | | No dynamic routing | Policy rules are static. No context-aware routing (by runId, sessionId, caller, cost). | | No plugin tool type | DeferredToolRegistry handles plugins but tools-adapter doesn't. | ### Where it should plug in ``` agent-core tool_search/tool_fetch → tools-adapter ToolRegistry (replaces DeferredToolRegistry) agent-core code_executor → tools-adapter ToolDispatcher.dispatch() (policy routing) agent-platform MCP tools → tools-adapter McpBridge (unified registration) hooks-adapter PreToolUse/PostToolUse → tools-adapter ToolHookBridge (permission/audit) ``` --- ## transport-adapter (Protocol Translation) — PARTIALLY INTEGRATED transport-adapter provides protocol translation (Anthropic↔OpenAI↔Google↔Bedrock↔Azure↔Vertex), codec system, completion engines with streaming, and an HTTP proxy runtime. Used by adapters launcher but disconnected from the rest of the agent stack. ### Gaps | Gap | Description | |-----|-------------| | Cost feedback missing | Proxy extracts cost records per-request but never feeds them to SDK journal or L6 cost tracking. | | Session-unaware | Proxy is stateless. No runId/sessionId tracking. Can't trace requests through distributed orchestration. | | Codec discovery not pluggable | New providers require hardcoded codec registration. No plugin system. | | Not integrated with L6 | agent-platform reads some codec metadata but doesn't feed tool definitions back to codecs. | | "Provisional" cutover | Marked provisional in agent-catalog pending scorecard:migration gate. | ### Where it should plug in ``` adapters launcher → transport-adapter proxy (DONE — this works) transport-adapter cost records → SDK journal appendEvent (MISSING — cost feedback loop) transport-adapter request traces → L5 telemetry spans (MISSING — distributed tracing) transport-adapter tool normalization → tools-adapter schema translation (MISSING — should share) ``` --- ## babysitter-sdk (Foundation) — PARTIALLY LEVERAGED SDK provides the effect journal, replay engine, task system (defineTask/ctx.task), runtime lifecycle, state cache, MCP server, and CLI. It's the foundation that L5/L6 build on, but several SDK features are unused. ### Gaps | Gap | Description | |-----|-------------| | SDK MCP server orphaned | `createBabysitterMcpServer()` exposes task/run/session tools but never registered in tools-adapter McpBridge or L6 MCP client. | | SDK tasks ≠ tasks-adapter | SDK has `defineTask()` / `ctx.task()`. tasks-adapter has `BreakpointBackend`. Two separate task systems that don't know about each other. | | No subagent effect type | Journal tracks effects but has no entry type for cross-agent dispatch. adapters launches happen outside the journal. | | Effect execution scattered | SDK journals effects but actual execution is hardcoded per-type across agent-platform (file, code, web) and adapters (harness launch). No unified effect executor. | | No tool metadata in tasks | SDK tasks have descriptions but no JSON Schema parameters. agent-core's tool_fetch needs schemas for discovery. | | Hooks disconnected | SDK has hooks/runtime.ts but no connection to hooks-adapter lifecycle events. | | Plugin registry parallel | SDK has plugin registry, agent-platform has separate plugin system. | ### Where it should plug in ``` SDK MCP server → tools-adapter McpBridge → agent-core tool discovery (MISSING) SDK defineTask → tasks-adapter BreakpointBackend (MISSING — for human-in-the-loop tasks) SDK effect journal → subagent effect type → adapters adapter dispatch (MISSING) SDK hooks → hooks-adapter lifecycle events (MISSING) SDK effect execution → unified executor → tools-adapter dispatch (MISSING) ``` --- ## genty → Agent-Adapter Cross-Agent Dispatch (NOT IMPLEMENTED) genty should be able to dispatch subtasks to external agents supported by adapters (claude-code, codex, gemini-cli, copilot, etc.) through the runtime. This enables an genty orchestration to delegate specialist work to the best available agent. ### Missing Architecture ``` Current: genty → agent-core session (direct API) → single model, no tool agents Needed: genty → agent-platform effect dispatch → SDK "subagent" effect type (journaled) → tasks-adapter routes to responder (adapters adapter) → adapters adapter launches target agent (claude-code, codex, etc.) → result posted back through tasks-adapter → SDK journal → orchestration continues with result ``` ### Specific Gaps | Gap | Description | |-----|-------------| | No subagent effect type in SDK | Need `kind: "subagent"` with `{ targetAgent, prompt, model, timeout }` | | No adapters adapter selection in genty | genty doesn't know about adapters's adapter registry | | No tasks-adapter routing for subagent dispatch | tasks-adapter routes to human responders, not to adapters adapters | | No result collection from external agents | adapters launch returns stdout/stderr but no structured task result | | No cross-agent session context | Dispatched agent doesn't see parent's context, files, or journal | --- ## External Issue Tracker Integration (MISSING) tasks-adapter should support pluggable external issue tracker backends for subtask tracking, syncing breakpoints bidirectionally with the team's project management tools. ### Current State Only `GitHubIssuesBackend` exists. Basic mapping of breakpoints to GitHub issues. ### Missing Backends | Backend | Priority | Description | |---------|----------|-------------| | Jira | High | REST API integration. Map breakpoints to Jira issues. Bidirectional sync. | | Linear | High | GraphQL API. Map to Linear issues. Automated status transitions. | | Generic REST | High | Configurable HTTP adapter for any REST-based tracker. | | Slack threads | Medium | Map breakpoints to Slack message threads for lightweight tracking. | | Trello | Low | Board/card mapping. | | Azure DevOps | Low | Work item integration. | ### Missing Sync Capabilities | Gap | Description | |-----|-------------| | No bidirectional sync | GitHub Issues backend creates issues but doesn't sync status changes back. | | No conflict resolution | If issue is updated in both places, no merge strategy. | | No field mapping config | Fixed mapping. Can't customize which breakpoint fields map to which issue fields. | | No webhook listeners | Can't receive push notifications from external trackers on status change. | | No bulk sync | Can't sync all existing breakpoints to a tracker on first connect. | | No backend plugin system | Adding a backend requires code changes, not configuration. | --- ## Cross-Layer Integration Gaps | Gap | Layers | Description | |-----|--------|-------------| | ~~Background process registry duplicated~~ | ~~L4↔L5~~ | ~~Same code in 5 files across agent-core, agent-runtime, agent-platform~~ → runtime now owns the registry/state; core and platform keep shims | | ~~Shell invocation duplicated~~ | ~~L4↔L5↔L6~~ | ~~5 locations with different flags (now unified but still duplicated)~~ → runtime now owns the shell argv contract | | Endpoint resolution duplicated | L4↔adapters | agent-core reimplements provider handling that adapters owns | | Cost tracking disconnected | L4→L5→L6 | Token usage parsed in L4, budgets in L5, enforcement supposed in L6 — none connected | | Session state fragmented | L5↔L6 | Runtime has session types, platform has session management — not integrated | | Telemetry isolated | L5 | In-memory only, never exported to L6 or external systems | | Resource limits advisory | L5→L6 | Budgets exist in L5, capability routing in L6 — neither enforced at spawn time | | tasks-adapter isolated from agent stack | L4↔tasks-adapter | Agent tools (task, ask) don't route through tasks-adapter. Breakpoints, responder discovery, routing all disconnected. | | Breakpoint delegation disconnected | L6↔tasks-adapter | agent-platform breakpoint system and tasks-adapter backends are parallel implementations, not integrated | | MCP tools not registered | L6↔tasks-adapter | tasks-adapter MCP server has 8 tools but agent harness doesn't discover or register them | | Approval chains orphaned | L6↔tasks-adapter | Sequential/quorum approval logic in L6 is not wired to tasks-adapter routing/answering | | 3 separate tool registries | L4↔tools-adapter↔L6 | DeferredToolRegistry (L4) + McpToolRegistry (L6) + ToolRegistry (tools-adapter) — should be unified | | tools-adapter dispatch not used | tools-adapter↔L4 | ToolDispatcher exists with policy-driven routing but agent-core hardcodes tool execution | | tools-adapter hooks stubbed | tools-adapter↔hooks-adapter | ToolHookBridge is NoopToolHookBridge. PreToolUse/PostToolUse never fire. | | No subagent effect type | SDK↔adapters | SDK journal has no effect type for cross-agent dispatch. adapters launches happen outside journal. | | SDK MCP server disconnected | SDK↔tools-adapter↔L6 | SDK's `createBabysitterMcpServer()` never registered in tools-adapter McpBridge or L6 MCP client | | SDK tasks ≠ tasks-adapter | SDK↔tasks-adapter | SDK has its own task system (defineTask, ctx.task). tasks-adapter has BreakpointBackend. Neither knows about the other. | | transport-adapter cost feedback missing | transport-adapter↔SDK | Proxy extracts cost records but never feeds them back to SDK journal or L6 cost tracking | | transport-adapter session-unaware | transport-adapter↔L5 | Proxy is stateless. No runId/sessionId tracking for distributed observability. | | No cross-agent task dispatch | tasks-adapter↔adapters | genty can't dispatch subtasks to external agents (claude-code, codex, etc.) via adapters adapters | | No external issue tracker sync | tasks-adapter↔external | Only GitHub Issues backend. No Jira, Linear, or generic REST backend for pluggable subtask tracking. | --- ## Priority Fix Order **P0 — Unblock production agent use:** 1. Streaming responses in agent-core session 2. Multi-turn conversation history 3. Unify tool registries: tools-adapter ToolDispatcher replaces DeferredToolRegistry + McpToolRegistry 4. Wire tasks-adapter into agent stack (native tools: todo, task, ask, approve, assign) 5. Wire MCP into agent-platform orchestration (connect tools-adapter McpBridge) 6. Complete ConcurrentEffects coverage beyond grouped agent-platform dispatch 7. Token usage tracking end-to-end (L4 → transport-adapter → SDK journal → L6 cost) **P1 — Unblock platform features:** 1. Subagent effect type in SDK journal + genty → adapters adapter dispatch 2. Structured output / JSON mode hardening in agent-core (full schema validator coverage and streaming coordination) 3. Vision/multimodal input follow-through (#575 streaming responses, #588 image-bearing `ToolResult`) 4. Wire breakpoint delegation → tasks-adapter backends 5. Wire approval chains → tasks-adapter routing 6. Cost budget enforcement in orchestration (transport-adapter cost feedback → SDK) 7. Background effects (non-blocking dispatch) 8. tasks-adapter search/filter API + priorities + dependencies **P2 — Integration & hardening:** 1. External issue tracker backends (Jira, Linear, generic REST) with bidirectional sync 2. genty cross-agent dispatch: tasks-adapter routes subtasks to adapters adapters 3. K8s executor implementation 4. Crash recovery + persistent queue in daemon 5. Process isolation/sandboxing 6. Distributed tracing (transport-adapter → L5 telemetry → OTLP export) 7. Tool cancellation via AbortSignal 8. tasks-adapter notifications, escalation chains, backend plugin system 9. SDK hooks → hooks-adapter lifecycle wiring 10. tools-adapter hook bridge → hooks-adapter PreToolUse/PostToolUse
documents
[]

Outgoing edges

None.

Incoming edges

contains_page1
  • page:docs·PageBabysitter Docs

Related pages

No related wiki pages for this record.

Shortcuts

Open in graph
Browse node kind