文档快照。请在独立的 NorthCUA Harness 仓库 中运行命令。

Configuration

For most users, only the model name, API key and optional base URL need changing. Copy the env template, load it explicitly, then generate both agent configurations together:

northcua config init --directory logs/my-config \
  --model "$NORTHCUA_MODEL" --base-url "$NORTHCUA_BASE_URL"
northcua config validate --app-config logs/my-config/app.example.yaml

The default API is OpenAI-compatible Chat. Keys remain ${env.OPENAI_API_KEY} references. --api-key-env takes a variable name, never the secret value. Connection overrides are written to both Desktop and Web YAMLs. config init does not overwrite existing files unless explicitly given --force.

northcua config init --directory my-config writes portable examples. northcua config validate --app-config my-config/app.example.yaml loads both agent configurations without making a model call. Environment placeholders must be populated.

Layer Responsibility
app YAML Artifact root, Desktop/Web settings, observation, context, evaluation and budgets
agent YAML NexAU model, provider, optional skills and model-visible MCP tools
controller YAML Authentication, scheduling, execution mode, storage and artifact limits
device YAML Platform, tool/capability allowlists, GUI resource identity and telemetry
batch/experiment/case YAML Task inputs, fresh sandbox allocation, fixtures, retries and evaluation

The public examples expose Desktop screenshot/mouse/keyboard actions, or Web browser and DOM/ref actions. Desktop accessibility trees are off by default. Shell/file tools remain available for setup and evaluation; they are not in the default desktop actor surface. Explicitly adding tools changes the task's execution contract.

Desktop always uses screenshots returned by its GUI tools. Initial capture supplies state before a clean tool result exists; subsequent visual decisions use the returned state and the shared overlay/clean history window. There is no observation-mode selector. The observation section configures optional a11y recording only. See context and images for removed configuration fields.

Providers

Use a fresh config directory for each connection recipe:

# Responses API; keep your OpenAI key in OPENAI_API_KEY.
northcua config init --directory logs/responses-config --model "$NORTHCUA_MODEL" \
  --base-url https://api.openai.com/v1 --api-type openai_responses

# Anthropic; set ANTHROPIC_API_KEY in the launching environment.
northcua config init --directory logs/anthropic-config --model "$NORTHCUA_MODEL" \
  --base-url https://api.anthropic.com --api-type anthropic_chat_completion \
  --api-key-env ANTHROPIC_API_KEY

# Gemini REST; set GEMINI_API_KEY in the launching environment.
northcua config init --directory logs/gemini-config --model "$NORTHCUA_MODEL" \
  --base-url https://generativelanguage.googleapis.com --api-type gemini_rest \
  --api-key-env GEMINI_API_KEY

Use the model ID and endpoint supported by your account. These recipes select protocol adapters; they do not claim live acceptance of every model. The pinned NexAU/runtime contract and the verification record define the tested boundary. Validate the generated app, then run one bounded task before scaling.

NexAU's llm_config.api_type supports the tested protocol adapters:

Provider interface API type Typical credential
OpenAI-compatible Chat Completions openai_chat_completion OPENAI_API_KEY
OpenAI Responses openai_responses OPENAI_API_KEY
Anthropic Messages anthropic_chat_completion ANTHROPIC_API_KEY
Gemini REST gemini_rest GEMINI_API_KEY

Set the exact model and base URL supported by your endpoint. The sample uses ${env.NORTHCUA_MODEL} and ${env.OPENAI_API_KEY}; change the placeholder names when switching providers. A model must accept images and structured tool calls for the default agent configuration. Provider-specific reasoning, image formats and replay settings belong in the agent config. No internal model endpoint is a project default.

northcua provider probe --help

Provider wire/stream tests run without network and cover tool-call IDs, reasoning, images, retries, disconnects and cancellation. They establish protocol compatibility, not the quality or availability of a specific hosted model. Record live-model validation separately when credentials are available.

Important limits

Default Value in generated examples When to change
Actor step budget 30 Prefer --max-steps 8 for a first Web task, 15 for Desktop
Model output tokens 4096 Match endpoint capability and task needs
Model context capacity 128000 Set the actual supported model limit
Request timeout / retries 120 seconds / 3 Adjust for your endpoint, not to hide invalid authentication
Screenshot history 3 images Trade visual history against model input cost
Context compaction off Configure deliberately for long tasks; see context
Evaluation off Use Web --evaluate or enable it in app YAML
Live evaluation probes off Enable explicitly to inspect the active workspace
External tracing off Local artifacts require no hosted observability service

Runtime skill paths and asset access are documented in Skills. Environment variables used by agent YAML must be present in the model/controller process. Worker-only hosts do not need model credentials.

Generate the full current field/type/default reference without reading source:

northcua config schema --kind app > logs/app-schema.json
northcua config schema --kind batch > logs/batch-schema.json

execution.max_agent_iterations_per_round and Web max_steps bound work; max_session_steps can additionally bound a persistent session. Model context limits, output reserves, screenshots and semantic history are separate budgets. Evaluators have their own step and time limits. Controller queues and create/submit/status concurrency bound resource use independently from model-step budgets.

Use the Python models in northcua/core/config.py, northcua/batch/contracts/, northcua/experiments/contracts/, northcua_protocol/ and northcua_device/config.py as the schema source of truth. Do not copy a dated production YAML as a supported API.

For local Web runs, web.browser_channel selects installed Chrome/Edge and web.browser_executable_path selects a local binary. Remote sessions propagate only browser_channel; the worker administrator can set NORTHCUA_BROWSER_EXECUTABLE on the device process. Controller file paths are never sent as executable selections.

← 返回指南

许可与致谢Apache-2.0 · Harness code

EN