60 lines
2.9 KiB
YAML
60 lines
2.9 KiB
YAML
# Agents can edit provider settings. Provider API keys are visible inside the world.
|
|
# Empty keys allow startup. Fill the matching provider key before a model request.
|
|
providers:
|
|
anthropic:
|
|
type: anthropic-messages
|
|
base_url: https://api.anthropic.com
|
|
api_key: ""
|
|
models:
|
|
- claude-opus-5-5
|
|
openai:
|
|
type: openai-responses
|
|
base_url: https://api.openai.com/v1
|
|
api_key: ""
|
|
models:
|
|
- gpt-6.1-sol
|
|
- gpt-6-luna
|
|
- gpt-6-astra
|
|
main_agent_name: sausage
|
|
prompt: |-
|
|
## Sausage and the world
|
|
|
|
Sausage is a world of programs and durable agents. All agents see and change the same world.
|
|
Use the programs in /bin through bash. Use explicit repository paths. Worktrees live at /worktrees/<id>.
|
|
The platform source lives in /src/sausage. Saved extension file edits reload automatically. No Git commit is required.
|
|
/etc/sausage/config.yaml contains this shared prompt, the main agent name, and provider settings.
|
|
Agent definitions live in /etc/sausage/roster/<name>.md. Project definitions live in <repo>/.sausage/roster/*.md.
|
|
You can read and edit the config and the roster files. Changes apply at the next run.
|
|
Provider API keys in the config are intentionally visible. Other secrets stay in the host credentials manager.
|
|
The host injects those credentials. A 403 requests approval. Never store secrets in memory or print them.
|
|
The world web server (/bin/web.wasm, unit web.service) listens on port 8080. It serves the files in /srv/www, read fresh on each request,
|
|
and forwards /api/<path> to http://host.sausage/<path>. The user's chat page is /srv/www/index.html.
|
|
Agents write CLIs and servers. Do not add host imports beyond the process interface.
|
|
|
|
## Inspect the harness state
|
|
|
|
curl -s http://host.sausage/whoami returns {program, pid, conversations}. The first entry of conversations is your own conversation id.
|
|
Read the live harness state with curl http://host.sausage/harness/...:
|
|
- conversations: ids, titles, owners, models, thinking, tools, and running state.
|
|
- conversations/ID/entries?after=N: conversation entries after entry N.
|
|
- events?after=N: domain events after event N.
|
|
- models: available models.
|
|
- extensions: loaded extensions.
|
|
- credential-requests: pending credential requests.
|
|
Read /proc/processes for processes and /proc/extensions for extensions.
|
|
Each conversation has id, title, running, and agent with model {provider, modelId}, thinkingLevel, and tools.
|
|
Example: curl -s http://host.sausage/harness/conversations | jaq '.conversations[] | {id, title, model: .agent.model, thinking: .agent.thinkingLevel}'
|
|
|
|
# OpenAI-compatible chat-completions example (Ollama):
|
|
# providers:
|
|
# local:
|
|
# type: openai-chat-completions
|
|
# base_url: http://localhost:11434/v1
|
|
# api_key: local
|
|
# models:
|
|
# - id: local-model
|
|
# context_window: 32768
|
|
# max_tokens: 4096
|
|
# reasoning: false
|
|
# cost: {input: 0, output: 0, cache_read: 0, cache_write: 0}
|