本文へ移動
cccskills
無料GitHub で公開

harness-integration-guide

Reference guide for building new Omnigent harness integrations — covers SDK/subprocess harnesses and native harnesses as separate tracks, each with their own feature matrix, implementation patterns, and prioritized checklist.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md10.6 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Harness integration guide

This skill describes the feature matrix every Omnigent harness must consider. Use it when planning, reviewing, or implementing a new harness.

Omnigent has two distinct harness tracks with different architectures and feature sets:

  • SDK/subprocess harnesses — run the vendor model directly (in-process SDK, CLI subprocess, or ACP subprocess). They own the model lifecycle.
  • Native harnesses — wrap a vendor's own TUI or server and mirror its output into Omnigent. They observe and relay, rather than drive.

Part 1 — SDK / subprocess harnesses

These harnesses run the vendor model directly and bridge Omnigent tools into the vendor's tool-calling interface.

Capability matrix

CapabilityWhat it means
Connects to Omnigent MCPHarness exposes/consumes tools via the MCP protocol (in-proc SDK MCP server)
Model overrideUser can select a model via --model / config; some harnesses are vendor-locked (e.g. Claude-only, GPT-only, Gemini-only)
AuthHow credentials are obtained — API key, gateway token, vendor CLI login, OAuth, etc.
StreamingHarness forwards token-level or delta-level streaming to the Omnigent forwarder
Omnigent policiesHarness enforces Omnigent-side tool policies — must support ALLOW, ASK, and DENY verdicts for both tool calls and tool results
Native elicitationWhen a policy verdict is ASK, the harness surfaces the approval request in the Omnigent web UI so the user can approve or deny
InterruptUser can cancel a running turn mid-stream
Live queue (concurrent)Multiple turns can be queued and processed concurrently
Tool-boundary steerOmnigent can inject steering text at tool-call boundaries
Resume/fork from Omnigent transcriptRebuild a conversation from a stored Omnigent transcript (replay history, seed prompt, or vendor session ID)
CompactionLong conversations are compacted; harness surfaces CompactionComplete events
ReasoningModel reasoning/thinking tokens are forwarded
ImagesImage content (screenshots, diagrams) is forwarded — full binary, path reference, or text-flattened
Cost trackingHarness reports token usage and cost data back to Omnigent for each turn

MCP connectivity

The harness must bridge Omnigent's builtin MCP tools so the model can call them. These tools provide session management, agent orchestration, policy control, and web access:

  • sys_session_get_info, sys_session_list, sys_session_get_history
  • sys_agent_get, sys_agent_list, sys_agent_download
  • sys_call_async, sys_cancel_async, sys_cancel_task
  • sys_read_inbox
  • sys_add_policy, sys_policy_registry
  • load_skill
  • list_comments, update_comment
  • web_fetch, web_search

Omnigent policies

The harness must support the Omnigent policy engine's three verdicts at two checkpoints:

CheckpointALLOWASKDENY
Tool call (before execution)Proceed silentlySurface approval request to user (via elicitation)Block the call and return a policy-denied error to the model
Tool result (after execution)Return result to modelSurface result for user review before returningSuppress the result and return a policy-denied error to the model

Native elicitation

When a policy verdict is ASK, the harness must surface the pending tool call or tool result in the Omnigent web UI as an approval card, then relay the user's approve/deny decision back to the harness to continue or block execution.

Resume / fork strategies

StrategyHow it works
Full history replayReplays the entire message history into a fresh thread/session
History prefix replayReplays a prefix of the history into a fresh session
Text-prefix replayInjects a text summary/prefix of prior history
Prompt seedingSeeds prior history into the system prompt on rebuild
Vendor session IDRelies on the vendor's own session persistence (no Omnigent-side rebuild)

Auth patterns

PatternDescription
API key / Databricks gatewayDirect API key or routed through a Databricks gateway
Vendor API key (direct)Vendor-specific API key (e.g. Cursor, Gemini)
Vendor CLI login / config fileCredentials stored in a vendor config file or managed via vendor CLI login
OAuth / GitHub tokenOAuth flow or platform token (e.g. GitHub PAT)
Gateway + fallbackPrimary gateway with fallback to vendor-native auth

Checklist for a new SDK/subprocess harness

All capabilities are required for a complete harness integration:

  • Connects to Omnigent MCP (in-proc SDK MCP server or vendor-specific bridge)
  • Model override works (or document vendor lock-in)
  • Auth is configured and documented (setup flow in omni setup)
  • Streaming forwards to the Omnigent forwarder
  • Omnigent policies enforce tool-use rules
  • Native elicitation surfaces tool-approval requests to web UI
  • Interrupt cancels the running turn
  • Live queue supports concurrent turns
  • Tool-boundary steering injects correctly
  • Resume/fork rebuilds conversation from Omnigent transcript
  • Compaction is surfaced (CompactionComplete events)
  • Reasoning tokens are forwarded
  • Images are forwarded (full binary preferred; path or text-flattened acceptable)
  • Cost tracking reports token usage and cost per turn
  • Unit tests cover tool bridging, auth, model routing
  • Mock LLM tests cover the happy path without real API calls

Shortcut: ACP CLI harnesses are one catalog row

If the vendor CLI speaks the Agent Client Protocol on stdio (the goose acp / qwen --acp family), do NOT write a new inner module, registry entries, or a spawn-env builder. Add one row to ACP_CLI_HARNESSES in omnigent/acp_cli_harnesses.py (label, binary, ACP argv, aliases, install hint or npm package, vendor login command) plus docs. Validity, module routing, picker label, capabilities, install spec, readiness, setup steps, spawn env, and the live e2e-matrix exclusion all derive from the row; tests/test_acp_cli_harnesses.py asserts the wiring per row automatically. These rows run through omnigent/inner/acp_harness.py and AcpExecutor, own their auth and model selection, and reject /model overrides up front.


Part 2 — Native harnesses

Native harnesses wrap a vendor's own TUI or server and mirror output into Omnigent. They relay the vendor's conversation into the Omnigent session.

Capability matrix

CapabilityWhat it means
TransportHow the native harness communicates — tmux TUI, app server, HTTP/SSE, file-inject TUI
Connects to Omnigent MCPWhether the native harness connects to the Omnigent MCP server
Model overrideUser can select a model at launch or per-prompt
AuthVendor login / config / token
Streaming (forwarder)deltas (token-level) vs complete-only (full response after completion)
Omnigent policiesWhether the native harness enforces Omnigent-side tool policies — must support ALLOW, ASK, and DENY verdicts for both tool calls and tool results
Native elicitationWhen a policy verdict is ASK, the native harness surfaces the approval request in the Omnigent web UI so the user can approve or deny
InterruptUser can abort a running turn
Bidirectional sync (TUI->Omni)TUI output mirrors into the Omnigent conversation
In-harness session-cmd syncSupports clear, fork, resume, switch commands from Omnigent
Resume/fork from Omnigent transcriptCan rebuild conversation from Omnigent transcript (native rebuild, or fresh launch)
CompactionVendor-internal compaction status
ReasoningModel reasoning/thinking tokens are forwarded
ImagesImage content is forwarded — path reference, full binary, or text-flattened
Cost trackingNative harness reports token usage and cost data back to Omnigent for each turn
Tool-output streamingLive incremental command/tool output (outputDelta) vs final aggregated output only
Working-tree diffThe vendor's aggregated per-turn diff is surfaced (vs reconstructed from per-file edits)
Generated/viewed mediaModel-produced or model-viewed images are mirrored (distinct from user-supplied image input)
Vendor modesVendor-specific modes (review mode, plan mode, etc.) are mirrored as status

Checklist for a new native harness

Capabilities are tiered by how essential they are. P0 must work or the harness is non-functional. P1 is required for a complete, parity-level integration — the web surface should match what the vendor TUI shows. Stretch items depend on vendor-specific signals and improve fidelity; they are optional and may legitimately be closed as wontfix when the vendor provides no signal or the data is redundant.

P0 — core (non-functional without these)

  • Transport chosen and implemented (tmux TUI, app server, HTTP/SSE)
  • Connects to Omnigent MCP
  • Auth configured (vendor login / config)
  • Streaming forwarder works (deltas preferred; complete-only acceptable)
  • Omnigent policies enforce tool-use rules (ALLOW / ASK / DENY at both tool call and tool result)
  • Native elicitation surfaces tool-approval requests to web UI
  • Interrupt aborts the running turn
  • Bidirectional sync mirrors TUI output into Omnigent conversation
  • Cost tracking reports token usage and cost per turn
  • Unit tests cover forwarder, auth, transport
  • Mock LLM tests cover the happy path without real API calls

P1 — parity (required for a complete integration)

  • Model override works at launch and per-prompt (or document vendor lock-in)
  • Session commands (clear, fork, resume) work from Omnigent
  • Resume/fork rebuilds from Omnigent transcript
  • Reasoning tokens are forwarded
  • Compaction status is surfaced
  • User-supplied images are forwarded (path preferred; binary or text-flattened acceptable)

Stretch — vendor-dependent fidelity

  • Live tool/command output is streamed (outputDelta), not just final aggregated output
  • The vendor's aggregated working-tree diff is surfaced (if provided)
  • Generated/viewed media (model-produced or model-viewed images) is mirrored
  • Vendor-specific modes (review mode, plan mode, etc.) are mirrored as status

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Spin up a live local Omnigent server + runner and exercise the native Antigravity (agy) TUI harness (antigravity-native) end-to-end — launch the real `agy` CLI via `omnigent antigravity`, drive turns through the web UI, smoke-test, and bug-bash. Load when developing, testing, or debugging the antigravity-native harness (omnigent/inner/antigravity_native_executor.py, omnigent/antigravity_native.py, antigravity_native_bridge.py, antigravity_native_rpc.py, antigravity_native_reader.py, antigravity_native_launch.py) or its agy launch / RPC mirror / tmux delivery / OAuth / MCP-relay behavior. NOT the in-process `antigravity` Gemini SDK harness.

日本語の概要は準備中です。原文の説明を表示しています。

omnigent-ai/omnigent1.1万2026年10月11日 更新

Spin up a live local Omnigent server and exercise the Antigravity (Gemini) SDK harness end-to-end — build antigravity agents, run real turns, smoke-test, and bug-bash. Load when developing, testing, or debugging the antigravity harness (omnigent/inner/antigravity_executor.py, antigravity_harness.py, omnigent/onboarding/antigravity_auth.py) or its auth / model / tool-bridge behavior.

日本語の概要は準備中です。原文の説明を表示しています。

omnigent-ai/omnigent1.1万2026年10月11日 更新

api-docs

無料

Document a module or public API surface (functions, classes, CLI commands, endpoints) from the code itself. Use when the user asks for API reference, to document a module, or to write usage docs for a public interface.

日本語の概要は準備中です。原文の説明を表示しています。

omnigent-ai/omnigent1.1万2026年10月11日 更新

Patterns and templates for generating valid Omnigent agent directories. Load when ready to create files.

日本語の概要は準備中です。原文の説明を表示しています。

omnigent-ai/omnigent1.1万2026年10月11日 更新

changelog

無料

Turn a range of commits or merged PRs into a changelog entry grouped by change type. Use when the user asks for release notes, a changelog, or "what changed" between two points.

日本語の概要は準備中です。原文の説明を表示しています。

omnigent-ai/omnigent1.1万2026年10月11日 更新

Verify the Omnigent CLI's setup/onboarding flow, terminal UI/UX, and critical user journeys in a completely isolated, reproducible loop. Drives the real `omnigent` binary through a PTY (pexpect) inside a throwaway OMNIGENT_CONFIG_HOME / OMNIGENT_DATA_DIR sandbox that never touches the user's real ~/.omnigent, captures ANSI-stripped frames for UX inspection, and proves a change is verifiable via a before→fix→after baseline diff. Load when developing or reviewing a CLI setup/onboarding/REPL/picker change (omnigent/cli.py, omnigent/onboarding/*, omnigent/repl/*, scripts/install_oss.sh), reproducing a cold-start/first-run UX bug, or confirming a fix actually lands. Several agents can run it concurrently on separate worktrees.

日本語の概要は準備中です。原文の説明を表示しています。

omnigent-ai/omnigent1.1万2026年10月11日 更新

omnigent-ai のスキルをすべて見る

このスキルの問題を報告する