Troubleshooting

FAQ

Frequently asked questions about Sulala Agent OS.

Do I need a separate Integrations service?

No. Agent OS does not include an OAuth integrations server. For channels (Telegram, Slack, Discord, Signal, Viber), you only configure tokens and default agents in Settings → Channels. Skills that need OAuth (e.g. Gmail) can use a Portal (external OAuth service) with a runtime-supplied base URL, or store credentials in skill config (e.g. user pastes a token). See Channels and Skills authoring.

Where are API keys and channel tokens stored?

In ~/.agent-os/config.json (or under AGENT_OS_HOME). The server and CLI read from this file; env vars can override. Never commit this file. Skill-specific config (e.g. API keys for a skill) is in ~/.agent-os/configs/<skill_id>.json.

Can I use a skill store?

Yes. Agent OS supports an optional store: set the store’s registry URL in Settings (or config). The dashboard can then list and install skills by slug. You can also install skills by copying to ~/.agent-os/skills/ or using Install system skills from the seed dir. See Store.

What’s the difference between a skill and a tool?

  • Skill — An installable module (folder under ~/.agent-os/skills/<name>/) with skill.yaml (or SKILL.md) and optional tools.yaml. It registers tools and may require config (API keys, etc.).
  • Tool — A callable capability the model uses (e.g. echo, time, or tools defined in a skill’s tools.yaml). The tool registry holds all tools; each agent gets tools from its listed skills + built-in allowlist.

Why don’t I see any skills in the store / registry?

  • Ensure the registry URL is set in Settings (or config) to a valid endpoint (e.g. your store’s registry API).
  • Ensure the server can reach that URL (no firewall blocking outbound HTTPS).
  • If you don’t use a store, install skills by copying to ~/.agent-os/skills/ or use Install system skills (dashboard or API).

How do I add my own skill without a store?

  • Copy — Create a folder under ~/.agent-os/skills/<name>/ with skill.yaml (or SKILL.md) and optional tools.yaml, then restart the server (or use Install system skills if the skill is in the seed dir).
  • Upload — Use POST /api/skills/upload (zip) or the dashboard upload if available.

See Skills authoring.

The channel (Telegram/Slack/etc.) doesn’t reply.

  • In Settings → Channels, confirm token and default agent id for that channel.
  • For webhooks, ensure the server is reachable over HTTPS and the webhook URL is set on the platform (use set-webhook for Telegram/Viber if needed).
  • For Slack/Discord, ensure signing secret or public key is set so the server can verify requests.

Is the server exposed to the internet?

By default, no. The server binds to 127.0.0.1 (localhost). Only processes on your machine can reach it unless you set HOST to another address or put the server behind a reverse proxy and expose it.