docs: add troubleshooting guide, FAQ, and configuration reference [AUTO-DOCS-6] #8320

Closed
HAL9000 wants to merge 1 commits from auto-docs-6/troubleshooting-and-config into master
5 changed files with 1387 additions and 0 deletions
+261
View File
@@ -98,3 +98,264 @@ from cleveragents.config.security_scanner import scan_for_secrets
issues = scan_for_secrets({"db_url": "postgresql://user:password@host/db"})
# → [SecretIssue(field="db_url", pattern="password_in_url")]
```
---
## Complete Environment Variable Reference
All `CLEVERAGENTS_*` environment variables recognised by the settings system.
Variables marked **secret** are redacted from logs and CLI output.
### Provider and Model Selection
| Environment Variable | Type | Default | Description |
|---------------------|------|---------|-------------|
| `CLEVERAGENTS_DEFAULT_PROVIDER` | `str` | auto-detected | Pin the global LLM provider (`openai`, `anthropic`, `google`, `azure`, `openrouter`, `groq`, `together`, `cohere`, `gemini`) |
| `CLEVERAGENTS_DEFAULT_MODEL` | `str` | provider default | Pin the global model ID |
| `CLEVERAGENTS_FALLBACK_PROVIDERS` | `str` | `""` | Comma-separated ordered list of fallback providers (e.g. `anthropic,openrouter`) |
### Provider API Keys
| Environment Variable | Provider | Secret |
|---------------------|----------|--------|
| `OPENAI_API_KEY` | OpenAI | ✓ |
| `ANTHROPIC_API_KEY` | Anthropic | ✓ |
| `GOOGLE_API_KEY` | Google | ✓ |
| `GOOGLE_GENAI_API_KEY` | Google (alias) | ✓ |
| `GEMINI_API_KEY` | Gemini | ✓ |
| `GOOGLE_GEMINI_API_KEY` | Gemini (alias) | ✓ |
| `AZURE_OPENAI_API_KEY` | Azure OpenAI | ✓ |
| `AZURE_OPENAI_ENDPOINT` | Azure OpenAI | — |
| `AZURE_OPENAI_DEPLOYMENT` | Azure OpenAI | — |
| `OPENROUTER_API_KEY` | OpenRouter | ✓ |
| `CLEVERAGENTS_OPENROUTER_ORGANIZATION` | OpenRouter | — |
| `GROQ_API_KEY` | Groq | ✓ |
| `TOGETHER_API_KEY` | Together | ✓ |
| `COHERE_API_KEY` | Cohere | ✓ |
| `HF_TOKEN` | Hugging Face | ✓ |
### Paths and Storage
| Environment Variable | Type | Default | Description |
|---------------------|------|---------|-------------|
| `CLEVERAGENTS_DATA_DIR` | `path` | `~/.local/share/cleveragents` | Root directory for database, logs, and runtime data |
| `CLEVERAGENTS_CONFIG_PATH` | `path` | `~/.config/cleveragents/config.toml` | Path to the TOML configuration file |
| `CLEVERAGENTS_ACTOR_PATH` | `path` | `~/.config/cleveragents/actors` | Directory scanned for custom actor YAML files |
| `CLEVERAGENTS_DB_URL` | `str` | SQLite in `CLEVERAGENTS_DATA_DIR` | Database URL (SQLite, PostgreSQL, MySQL, or DuckDB) |
### Budget and Cost Controls
| Environment Variable | Type | Default | Description |
|---------------------|------|---------|-------------|
| `CLEVERAGENTS_BUDGET_PER_PLAN` | `int` | unlimited | Maximum tokens consumed per plan execution |
| `CLEVERAGENTS_BUDGET_PER_DAY` | `int` | unlimited | Maximum tokens consumed per calendar day |
### Actor Defaults
| Environment Variable | Type | Default | Description |
|---------------------|------|---------|-------------|
| `CLEVERAGENTS_ACTOR__DEFAULT__ESTIMATION` | `str` | `""` | Name of the actor used for cost/effort estimation |
| `CLEVERAGENTS_ACTOR__DEFAULT__INVARIANT` | `str` | `""` | Name of the actor used for invariant reconciliation |
### Logging and Observability
| Environment Variable | Type | Default | Description |
|---------------------|------|---------|-------------|
| `CLEVERAGENTS_LOG_LEVEL` | `str` | `WARNING` | Log level: `DEBUG`, `INFO`, `WARNING`, `ERROR`, `CRITICAL` |
| `CLEVERAGENTS_LOG_FORMAT` | `str` | `text` | Log format: `text` or `json` |
| `CLEVERAGENTS_LANGSMITH_ENABLED` | `bool` | `false` | Enable LangSmith tracing |
| `CLEVERAGENTS_LANGSMITH_PROJECT` | `str` | `""` | LangSmith project name |
| `CLEVERAGENTS_LANGSMITH_API_KEY` | `str` | `""` | LangSmith API key (secret) |
| `CLEVERAGENTS_LANGSMITH_ENDPOINT` | `str` | LangSmith default | LangSmith endpoint URL |
| `CLEVERAGENTS_LANGSMITH_USER_ID` | `str` | `""` | LangSmith user ID for trace attribution |
| `CLEVERAGENTS_LANGSMITH_TAGS` | `str` | `""` | Comma-separated tags added to all LangSmith traces |
### Testing
| Environment Variable | Type | Default | Description |
|---------------------|------|---------|-------------|
| `CLEVERAGENTS_TESTING_USE_MOCK_AI` | `bool` | `false` | Force the in-repo mock provider; disables all real API calls |
### TUI
| Environment Variable | Type | Default | Description |
|---------------------|------|---------|-------------|
| `CLEVERAGENTS_TUI_ANIMATIONS` | `bool` | `true` | Enable/disable TUI animations |
---
## Configuration File
CleverAgents reads a TOML configuration file from `~/.config/cleveragents/config.toml`
(or the path set by `CLEVERAGENTS_CONFIG_PATH`). Environment variables always take
precedence over file values.
```toml
# ~/.config/cleveragents/config.toml
[defaults]
provider = "anthropic"
model = "claude-sonnet-4-20250514"
fallback_providers = ["openrouter", "openai"]
[budget]
per_plan = 100000
per_day = 1000000
[actor.default]
estimation = "local/my-estimator"
invariant = "local/my-invariant-checker"
[logging]
level = "INFO"
format = "json"
[langsmith]
enabled = true
project = "my-project"
```
---
## Actor Configuration YAML Format
Custom actors are defined as YAML files placed in `~/.config/cleveragents/actors/`
(or the path set by `CLEVERAGENTS_ACTOR_PATH`).
### Minimal LLM Actor
```yaml
name: local/my-assistant # Required — must be namespace/identifier
type: llm # Required — llm | tool | graph
description: My assistant # Required
model: gpt-4o # Required for llm and graph types
version: "1.0" # Optional
```
### LLM Actor with Skills
```yaml
name: local/code-assistant
type: llm
description: Code-focused assistant with file and git tools
model: claude-sonnet-4-20250514
version: "1.0"
skills:
- local/file-ops
- local/git-ops
```
### Graph Actor (Multi-Node Workflow)
```yaml
name: local/dev-pipeline
type: graph
description: Multi-step development pipeline
model: gpt-4o
version: "1.0"
skills:
- local/file-ops
route:
entry_node: planner
exit_nodes:
- reviewer
nodes:
- id: planner
type: agent
name: Planner
description: Plans the implementation
config:
model: gpt-4o
prompt: "Analyze requirements and create a plan."
- id: implementer
type: agent
name: Implementer
description: Implements the plan
config:
model: gpt-4o
prompt: "Implement the changes per the plan."
- id: gate
type: conditional
name: Quality Gate
description: Routes based on lint result
config:
conditions:
- check: "state.get('lint_ok') == True"
route_to: reviewer
- check: "state.get('lint_ok') == False"
route_to: planner
- id: reviewer
type: agent
name: Reviewer
description: Reviews the implementation
config:
model: gpt-4o
prompt: "Review the implementation for correctness."
edges:
- from_node: planner
to_node: implementer
- from_node: implementer
to_node: gate
- from_node: gate
to_node: planner
- from_node: gate
to_node: reviewer
```
See [Actor Configuration Reference](../reference/actor_config.md) for the full field listing and validation rules.
---
## Action Configuration YAML Format
Actions define high-level tasks. They are typically created via the CLI
(`agents action create`) but can also be written as YAML files.
```yaml
name: local/refactor-auth
description: Refactor the authentication module to use async patterns
version: "1.0"
# Actor to use for this action
actor: local/dev-pipeline
# Automation profile (manual | review | supervised | cautious | trusted | autonomous | ci | full-auto)
automation_profile: trusted
# Resources this action operates on
resources:
- type: git-checkout
path: /path/to/repo
name: main-repo
# Invariants enforced for every plan spawned from this action
invariants:
- "All API changes must maintain backward compatibility"
- "Test coverage must not decrease"
# Definition of Done
definition_of_done:
must:
- "All existing tests pass"
- "New tests cover the changed code"
should:
- "Cyclomatic complexity does not increase"
```
---
## Related Documentation
- [ADR-024 Configuration System](../adr/ADR-024-configuration-system.md) — design rationale
- [ADR-025 Observability & Logging](../adr/ADR-025-observability-and-logging.md) — LangSmith integration details
- [Actor Configuration Reference](../reference/actor_config.md) — full actor YAML schema
- [Diagnostics Check List](../reference/diagnostics_checks.md) — `agents diagnostics` checks
- [Troubleshooting Guide](../guides/troubleshooting.md) — common configuration problems and fixes
+326
View File
@@ -0,0 +1,326 @@
# Frequently Asked Questions
Quick answers to common questions about CleverAgents. For deeper dives, follow the links to the relevant documentation.
> **Note:** The existing [Architecture FAQ](../faq.md) covers advanced architectural questions about ACMS, dependency closures, parallel execution, and automation profiles. This guide focuses on practical day-to-day usage questions.
---
## General
### What is CleverAgents?
CleverAgents is a Python-first automation platform that lets you build, run, and manage AI agents for software development tasks. It provides:
- A unified `agents` CLI and interactive Textual TUI
- A structured plan lifecycle (Strategize → Execute → Apply) with a full decision tree
- Multi-provider LLM support (OpenAI, Anthropic, Google, Azure, Groq, and more)
- A git worktree sandbox for safe, isolated plan execution
- SQLite-backed local persistence for sessions, plans, and decisions
- An Actor system for composing reusable agent workflows
See the [README](../../README.md) for a full feature overview.
### How does CleverAgents differ from using LangChain/LangGraph directly?
CleverAgents is built *on top of* LangChain/LangGraph and adds:
| Feature | LangChain/LangGraph | CleverAgents |
|---------|--------------------|----|
| Provider switching | Manual wiring | Auto-detected from env vars |
| Plan lifecycle | Custom | Built-in Strategize/Execute/Apply |
| Decision tracking | None | Full decision tree with correction |
| Sandbox isolation | None | Git worktree + filesystem overlays |
| Invariant enforcement | None | Multi-scope invariant system |
| CLI/TUI | None | Unified `agents` CLI + Textual TUI |
| Persistence | Custom | SQLite with Alembic migrations |
| Actor system | Chains/Graphs | Named, versioned, YAML-configured actors |
If you want full control over every LangGraph node and edge, use LangGraph directly. If you want a structured, production-ready agent platform with batteries included, use CleverAgents.
### Is CleverAgents open source?
Yes. CleverAgents Core is licensed under the Apache 2.0 License. See [LICENSE](../../LICENSE) and [ATTRIBUTIONS.md](../../ATTRIBUTIONS.md).
---
## Setup and Configuration
### Can I use CleverAgents without an LLM API key?
Yes, for **testing and development** purposes. Set the mock provider environment variable:
```bash
export CLEVERAGENTS_TESTING_USE_MOCK_AI=true
agents tell --actor mock/default "Hello"
```
The mock provider returns deterministic responses without hitting any external API. It is used by the full test suite to avoid API costs.
For production use, you need at least one real provider API key. See [LLM provider configuration](../../README.md#llm-provider-configuration) for the list of supported providers.
### Where does CleverAgents store its data?
| Data type | Default location |
|-----------|-----------------|
| Database | `~/.local/share/cleveragents/cleveragents.db` |
| Config file | `~/.config/cleveragents/config.toml` |
| Actors | `~/.config/cleveragents/actors/` |
| Personas | `~/.config/cleveragents/personas/` |
| Logs | `~/.local/share/cleveragents/logs/` |
Override the data directory:
```bash
export CLEVERAGENTS_DATA_DIR=/custom/path
```
Override the config file:
```bash
export CLEVERAGENTS_CONFIG_PATH=/custom/config.toml
```
### How do I pin a specific LLM provider and model?
```bash
# Via environment variables
export CLEVERAGENTS_DEFAULT_PROVIDER=anthropic
export CLEVERAGENTS_DEFAULT_MODEL=claude-sonnet-4-20250514
# Via config file (~/.config/cleveragents/config.toml)
[defaults]
provider = "anthropic"
model = "claude-sonnet-4-20250514"
# Via actor configuration (most specific)
agents actor set-default anthropic/claude-sonnet-4-20250514
```
### How do I check which provider is being used?
```bash
agents diagnostics
```
This prints the detected provider, model, and API key status for every supported provider.
---
## Actors
### How do I add a custom actor?
1. Create a YAML file in `~/.config/cleveragents/actors/`:
```yaml
# ~/.config/cleveragents/actors/my-assistant.yaml
name: local/my-assistant
type: llm
description: My custom assistant
model: gpt-4o
```
2. Verify it is registered:
```bash
agents actor list
```
3. Use it:
```bash
agents tell --actor local/my-assistant "Hello"
```
For graph actors with multiple nodes, see [Actor Configuration Reference](../reference/actor_config.md).
### What is the difference between built-in and custom actors?
- **Built-in actors** (`<provider>/<model>`, e.g., `openai/gpt-4o`) are immutable and auto-generated from the provider registry. You cannot modify or delete them.
- **Custom actors** must be named `local/<id>` (or another custom namespace). They are stored in YAML files and fully configurable.
The default actor cannot be removed. Use `--unsafe` when adding or updating actors marked as unsafe.
### How do I set a default actor?
```bash
agents actor set-default openai/gpt-4o
```
Once set, commands like `agents tell` and `agents build` do not require `--actor`.
### Can I use an actor with a local LLM (Ollama)?
Yes. Configure an actor pointing to an OpenAI-compatible endpoint:
```yaml
name: local/ollama-llama3
type: llm
description: Local Llama 3 via Ollama
model: llama3
```
Set the base URL to your Ollama instance:
```bash
export OPENAI_API_BASE=http://localhost:11434/v1
export OPENAI_API_KEY=ollama # Ollama accepts any non-empty key
```
Then use the actor:
```bash
agents tell --actor local/ollama-llama3 "Hello"
```
---
## Tools and Skills
### How do I create a custom tool?
Tools are Python functions registered with the tool registry. Create a tool definition:
```python
# my_tools/search.py
from cleveragents.tool import tool
@tool(name="local/web-search", description="Search the web")
def web_search(query: str) -> str:
"""Search the web for the given query."""
# implementation
return results
```
Register it:
```bash
agents tool add local/web-search --path my_tools/search.py
```
See [Tool API Reference](../api/tool.md) for the full tool lifecycle and registry API.
### What is the difference between a Tool and a Skill?
- **Tools** are individual callable functions that actors can invoke (like LangChain tools). They perform a single operation.
- **Skills** are collections of related tools bundled together as a reusable unit. An actor declares which skills it uses, and the skill's tools become available to it.
Example: a `local/git-ops` skill might bundle `git_commit`, `git_push`, `git_diff`, and `git_log` tools.
---
## Plans and Actions
### What is the difference between an Action and a Plan?
- An **Action** is a high-level task definition — it describes *what* you want to accomplish, the resources involved, invariants to enforce, and the automation profile to use.
- A **Plan** is a concrete execution instance of an Action. When you run an action, CleverAgents creates a Plan and runs it through the Strategize → Execute → Apply lifecycle.
Think of Actions as templates and Plans as runs.
### How does the git worktree sandbox work?
When a plan executes against a git repository resource, CleverAgents:
1. Creates a new branch `cleveragents/plan-<plan-id>` from the current HEAD.
2. Creates a temporary git worktree in a system temp directory.
3. The actor writes all changes inside the worktree (not the original repo).
4. On **Apply**: stages and commits all changes in the worktree, then merges the sandbox branch back into the original branch.
5. On **Rollback**: discards the worktree entirely — the original branch is untouched.
This means you can always safely reject a plan's changes without any manual cleanup.
See [Git Worktree Sandbox](../modules/git-worktree-sandbox.md) for the full technical reference.
### What is the A2A protocol?
A2A (Agent-to-Agent) is a JSON-RPC 2.0 protocol that CleverAgents uses internally to wire the CLI and TUI to live application services (session, plan, registry, event). It follows the standard JSON-RPC 2.0 wire format with `method`, `id`, `result`, and `error` fields.
See [A2A Protocol Reference](../api/a2a.md) for details.
### How do I correct a bad decision in a plan?
Use `agents plan correct`:
```bash
# View the decision tree
agents plan tree <plan-id>
# Correct a specific decision
agents plan correct <decision-id> \
--mode revert \
--guidance "Use gRPC instead of REST for this service"
```
The system marks the original decision as superseded, creates a new decision with your guidance, and recomputes only the affected downstream decisions — preserving all unrelated work.
---
## Testing
### How do I run tests without hitting real APIs?
Set the mock AI environment variable:
```bash
export CLEVERAGENTS_TESTING_USE_MOCK_AI=true
# Run all tests
nox -s unit_tests
nox -s integration_tests
# Run a specific feature
nox -s unit_tests -- features/plan_model.feature
```
The mock provider is used by the full CI test suite and never hits external APIs.
### What testing frameworks does CleverAgents use?
- **Behave** (BDD/Gherkin) for unit-level and scenario tests — feature files live under `features/`
- **Robot Framework** for integration and end-to-end tests — suites live under `robot/`
- **ASV** (airspeed velocity) for performance benchmarks — under `benchmarks/`
- **Coverage**: `coverage.py` with branch coverage, enforced at **≥97%**
Always run tests through `nox` sessions, never invoke `behave` or `robot` directly.
See [Testing Guide](../development/testing.md) for full details.
---
## Contributing
### How do I contribute to CleverAgents?
1. Read [CONTRIBUTING.md](../../CONTRIBUTING.md) — it covers the full development workflow, coding standards, and review process.
2. Set up your development environment:
```bash
git clone https://git.cleverthis.com/cleveragents/cleveragents-core.git
cd cleveragents-core
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev,tests,docs,tui]"
bash scripts/setup-dev.sh
```
3. Create a feature branch and make your changes.
4. Ensure all checks pass:
```bash
nox -s format lint typecheck unit_tests integration_tests coverage_report
```
5. Open a pull request against `master`.
### Where do I report bugs?
File issues at: [https://git.cleverthis.com/cleveragents/cleveragents-core/issues](https://git.cleverthis.com/cleveragents/cleveragents-core/issues)
Include:
- Output of `agents diagnostics`
- Output of `agents --version`
- Your Python version (`python --version`)
- Debug logs (`CLEVERAGENTS_LOG_LEVEL=DEBUG agents <command> 2>debug.log`)
---
## Troubleshooting
For detailed troubleshooting steps, see the [Troubleshooting Guide](troubleshooting.md).
+20
View File
@@ -0,0 +1,20 @@
# Guides
Practical how-to guides for working with CleverAgents.
## Available Guides
| Guide | Description |
|-------|-------------|
| [Troubleshooting](troubleshooting.md) | Step-by-step fixes for installation, provider, database, plan execution, TUI, and test suite issues |
| [FAQ](faq.md) | Frequently asked questions about CleverAgents — setup, actors, plans, testing, and contributing |
## Other Documentation
- **[API Reference](../api/index.md)** — Python API for `cleveragents` modules
- **[Configuration Reference](../api/config.md)** — All `CLEVERAGENTS_*` environment variables, config file format, actor YAML schema
- **[Reference](../reference/)** — Detailed reference pages for CLI commands, schemas, and subsystems
- **[Modules](../modules/)** — Deep-dive documentation for specific subsystems (git worktree sandbox, UKO, invariant reconciliation, etc.)
- **[Development](../development/)** — Contributor guides: testing, CI/CD, quality automation, ops runbook
- **[Architecture FAQ](../faq.md)** — Advanced architectural questions about ACMS, parallel execution, and automation profiles
- **[ADRs](../adr/index.md)** — Architecture Decision Records explaining *why* key design choices were made
+776
View File
@@ -0,0 +1,776 @@
# Troubleshooting Guide
This guide covers the most common issues encountered when installing, configuring, and running CleverAgents, along with step-by-step remediation instructions.
---
## Table of Contents
- [Installation Issues](#installation-issues)
- [LLM Provider Issues](#llm-provider-issues)
- [Database Issues](#database-issues)
- [Plan Execution Issues](#plan-execution-issues)
- [TUI Issues](#tui-issues)
- [Test Suite Issues](#test-suite-issues)
- [Common Error Messages](#common-error-messages)
- [Diagnostic Commands](#diagnostic-commands)
- [Getting Help](#getting-help)
---
## Installation Issues
### Python version mismatch
CleverAgents requires **Python 3.11 or later**. Check your version:
```bash
python --version
# or
python3 --version
```
If you see `Python 3.10.x` or earlier, install a supported version. The project ships a `.python-version` file for [pyenv](https://github.com/pyenv/pyenv) users:
```bash
# Install pyenv (if not already installed)
curl https://pyenv.run | bash
# Install the required Python version
pyenv install $(cat .python-version)
pyenv local $(cat .python-version)
```
### Virtual environment not activated
Symptoms: `agents: command not found` or `ModuleNotFoundError: No module named 'cleveragents'`.
```bash
# Create and activate a virtual environment
python -m venv .venv
source .venv/bin/activate # Linux/macOS
.venv\Scripts\activate # Windows
# Verify activation
which python # should point to .venv/bin/python
```
### `pip install` failures
**Dependency resolution errors:**
```bash
# Upgrade pip first
pip install --upgrade pip
# Install with all extras
pip install -e ".[dev,tests,docs,tui]"
```
**Build errors for compiled extensions:**
```bash
# Install build tools (Debian/Ubuntu)
sudo apt-get install build-essential python3-dev
# Install build tools (macOS)
xcode-select --install
```
**Lock file conflicts (uv users):**
```bash
# Sync from the lock file
uv sync
# Or regenerate the lock file
uv lock --upgrade
```
### Pre-commit hooks failing on first setup
```bash
# Run the setup script
bash scripts/setup-dev.sh
# Or install hooks manually
pre-commit install
pre-commit run --all-files
```
---
## LLM Provider Issues
### Missing API key
**Symptom:** `Error [525] CONFIGURATION_ERROR: No LLM provider is configured`
CleverAgents requires at least one provider API key. Run diagnostics to see which keys are detected:
```bash
agents diagnostics
```
Set the appropriate key for your provider:
```bash
# OpenAI
export OPENAI_API_KEY="sk-..."
# Anthropic
export ANTHROPIC_API_KEY="sk-ant-..."
# Google
export GOOGLE_API_KEY="AIza..."
# Groq
export GROQ_API_KEY="gsk_..."
```
Add the export to your shell profile (`~/.bashrc`, `~/.zshrc`, etc.) to persist it across sessions.
### Wrong provider selected
**Symptom:** The system uses a different provider than expected.
The provider auto-detection order is:
```
openai → anthropic → google → azure → openrouter → groq → together → cohere → gemini
```
To pin a specific provider:
```bash
export CLEVERAGENTS_DEFAULT_PROVIDER=anthropic
export CLEVERAGENTS_DEFAULT_MODEL=claude-sonnet-4-20250514
```
Or set it in your config file (`~/.config/cleveragents/config.toml`):
```toml
[defaults]
provider = "anthropic"
model = "claude-sonnet-4-20250514"
```
### Model not found
**Symptom:** `Error [527] MODEL_UNAVAILABLE: Model 'gpt-5' not found`
Verify the model name is correct for your provider. Check the capability matrix:
```bash
# List available actors (which embed provider/model choices)
agents actor list
# Check provider documentation
# See: docs/reference/providers.md
```
Common model identifiers:
| Provider | Example model IDs |
|----------|------------------|
| OpenAI | `gpt-4o`, `gpt-4o-mini`, `o1-preview` |
| Anthropic | `claude-sonnet-4-20250514`, `claude-3-5-haiku-20241022` |
| Google | `gemini-2.0-flash`, `gemini-1.5-pro` |
| Groq | `llama-3.3-70b-versatile`, `mixtral-8x7b-32768` |
### Rate limit errors
**Symptom:** `Error [429] RATE_LIMITED: Too many requests`
CleverAgents has built-in retry logic with exponential backoff. If you hit persistent rate limits:
1. **Reduce concurrency** — avoid running multiple parallel plans simultaneously.
2. **Switch to a fallback provider:**
```bash
export CLEVERAGENTS_FALLBACK_PROVIDERS="anthropic,openrouter"
```
3. **Set a budget limit** to prevent runaway token usage:
```bash
export CLEVERAGENTS_BUDGET_PER_PLAN=50000 # tokens per plan
export CLEVERAGENTS_BUDGET_PER_DAY=500000 # tokens per day
```
### Azure OpenAI configuration
Azure requires additional environment variables beyond the API key:
```bash
export AZURE_OPENAI_API_KEY="your-key"
export AZURE_OPENAI_ENDPOINT="https://your-resource.openai.azure.com"
export AZURE_OPENAI_DEPLOYMENT="your-deployment-name"
export CLEVERAGENTS_DEFAULT_PROVIDER=azure
```
### Token limit exceeded
**Symptom:** `Error [526] TOKEN_LIMIT: Context window exceeded`
- Switch to a model with a larger context window (e.g., `gpt-4o` supports 128K tokens).
- Break the task into smaller sub-plans.
- Reduce the number of resources included in the plan scope.
---
## Database Issues
### Migration failures
**Symptom:** `Error [522] DATABASE_ERROR: alembic migration failed`
Run migrations manually:
```bash
# Check current migration state
alembic current
# Apply pending migrations
alembic upgrade head
# If migrations are out of sync, check history
alembic history --verbose
```
If the database is corrupted, you can reset it (this deletes all local data):
```bash
# Backup first
cp ~/.local/share/cleveragents/cleveragents.db ~/.local/share/cleveragents/cleveragents.db.bak
# Remove and let CleverAgents recreate on next run
rm ~/.local/share/cleveragents/cleveragents.db
agents diagnostics
```
### Database locked
**Symptom:** `Error [522] DATABASE_ERROR: database is locked`
Another process is holding an exclusive lock on the SQLite database. Find and stop it:
```bash
# Find processes using the database file
lsof ~/.local/share/cleveragents/cleveragents.db
# Or check for stale lock files
ls ~/.local/share/cleveragents/*.db-wal
ls ~/.local/share/cleveragents/*.db-shm
```
If no other process is running, the lock files may be stale:
```bash
rm -f ~/.local/share/cleveragents/cleveragents.db-wal
rm -f ~/.local/share/cleveragents/cleveragents.db-shm
```
### Schema mismatch
**Symptom:** `Error [522] DATABASE_ERROR: no such column: ...` or `table ... has no column named ...`
Your database schema is out of date. Run:
```bash
alembic upgrade head
```
If you have a very old database, you may need to stamp it at the base revision first:
```bash
alembic stamp base
alembic upgrade head
```
### Data directory not writable
**Symptom:** `Error [523] FILESYSTEM_ERROR: Permission denied: '/home/user/.local/share/cleveragents'`
```bash
# Fix permissions
chmod 755 ~/.local/share/cleveragents
chmod 644 ~/.local/share/cleveragents/cleveragents.db
# Or use a custom data directory
export CLEVERAGENTS_DATA_DIR=/path/to/writable/dir
```
---
## Plan Execution Issues
### Actor not found
**Symptom:** `Error [404] NOT_FOUND: Actor 'local/my-actor' not found`
```bash
# List all registered actors
agents actor list
# Check actor YAML files are in the search path
agents actor list --verbose
# Verify actor name format (must be namespace/identifier)
# Correct: local/my-actor
# Incorrect: my-actor
```
Custom actors must be placed in `~/.config/cleveragents/actors/` or a path configured via `CLEVERAGENTS_ACTOR_PATH`.
### Actor configuration errors
**Symptom:** `Schema validation failed for actor.yaml`
Common actor YAML mistakes and fixes:
```yaml
# WRONG — missing namespace
name: my-actor
# CORRECT
name: local/my-actor
```
```yaml
# WRONG — llm type without model
name: local/my-actor
type: llm
description: My actor
# CORRECT
name: local/my-actor
type: llm
description: My actor
model: gpt-4o
```
See [Actor Configuration Reference](../reference/actor_config.md) for the full schema.
### Sandbox creation failure
**Symptom:** `Error [521] EXECUTION_ERROR: SandboxCreationError: git worktree add failed`
The git worktree sandbox requires the resource path to be a valid git repository root:
```bash
# Verify the path is a git repository
git -C /path/to/resource rev-parse --git-dir
# Ensure git is installed
git --version
# Check disk space (worktrees need space)
df -h /tmp
```
If the repository has an existing worktree with the same name (from a crashed plan):
```bash
# List existing worktrees
git worktree list
# Remove stale worktrees
git worktree prune
git worktree remove /tmp/ca-sandbox-plan-<id> --force
```
### Git worktree errors
**Symptom:** `fatal: 'cleveragents/plan-...' is already checked out`
A previous plan left a stale worktree. Clean it up:
```bash
# In the repository directory
git worktree prune
# List and remove specific stale worktrees
git worktree list
git worktree remove <path> --force
# Delete the stale branch
git branch -D cleveragents/plan-<plan-id>
```
### ChangeSet empty
**Symptom:** Plan completes but no files are changed; `CommitResult` shows empty file lists.
This usually means the actor did not write any changes to the sandbox path. Possible causes:
1. **Actor wrote to the wrong path** — ensure the actor uses the sandbox path returned by `get_path()`, not the original resource path.
2. **All changes were identical to existing content** — git does not stage unchanged files.
3. **Actor exited early** — check plan logs for warnings or early termination.
Debug by inspecting the plan's decision tree:
```bash
agents plan tree <plan-id>
agents plan errors <plan-id>
```
### Plan stuck in Strategize phase
**Symptom:** Plan does not progress past the Strategize phase.
```bash
# Check plan status
agents plan status <plan-id>
# View the decision tree
agents plan tree <plan-id>
# Check for invariant violations blocking the transition
agents plan errors <plan-id>
```
If the automation profile requires human input at phase transitions, you may need to approve the transition:
```bash
agents plan approve <plan-id>
```
### Invariant violation blocking plan
**Symptom:** `INVARIANT_VIOLATED` event emitted; plan blocked at phase transition.
```bash
# View active invariants
agents invariant list
# View the specific violation
agents plan errors <plan-id>
# Correct the decision that caused the violation
agents plan correct <decision-id> --guidance "..."
```
---
## TUI Issues
### TUI fails to launch
**Symptom:** `Error: No module named 'textual'` or blank screen on launch.
```bash
# Install the TUI extra
pip install -e ".[tui]"
# Verify Textual is installed
python -c "import textual; print(textual.__version__)"
```
### Terminal compatibility issues
**Symptom:** Garbled output, missing colors, or broken layout.
CleverAgents TUI requires a terminal with:
- 256-color or true-color support
- Unicode/UTF-8 support
- Minimum 80×24 terminal size
```bash
# Check terminal color support
echo $TERM
echo $COLORTERM
# Force true-color mode
export COLORTERM=truecolor
# Increase terminal size or use a larger window
```
Recommended terminals: iTerm2, Alacritty, kitty, Windows Terminal, GNOME Terminal.
### Display glitches or rendering artifacts
```bash
# Force a terminal reset
reset
# Try disabling animations
export CLEVERAGENTS_TUI_ANIMATIONS=false
# Run with a specific color depth
TERM=xterm-256color agents tui
```
### TUI crashes on startup
```bash
# Run with verbose logging to diagnose
CLEVERAGENTS_LOG_LEVEL=DEBUG agents tui 2>tui-debug.log
cat tui-debug.log
```
### Slash commands not working
Ensure you are pressing `/` at the beginning of the input field. The slash command overlay lists all 67 available commands across 14 groups. Press `Escape` to dismiss it.
---
## Test Suite Issues
### Mock AI not working
**Symptom:** Tests hit real APIs or fail with `No LLM provider configured`.
Set the mock AI environment variable before running tests:
```bash
export CLEVERAGENTS_TESTING_USE_MOCK_AI=true
nox -s unit_tests
```
Verify the mock is active:
```bash
python -c "
import os
os.environ['CLEVERAGENTS_TESTING_USE_MOCK_AI'] = 'true'
from cleveragents.config.settings import Settings
s = Settings()
print('Provider:', s.provider) # should show 'mock'
"
```
### Coverage below 97%
**Symptom:** `COVERAGE FAILED: 95.3% < 97% threshold`
1. **Identify uncovered lines:**
```bash
nox -s coverage_report -- --show-missing
```
2. **Add missing Behave scenarios** for the uncovered code paths.
3. **Check for excluded files** — some files may be incorrectly excluded from coverage measurement in `pyproject.toml`.
4. **Run coverage locally before pushing:**
```bash
nox -s unit_tests
nox -s coverage_report
```
### Robot Framework errors
**Symptom:** `robot: command not found` or `ImportError` in Robot suites.
```bash
# Install test dependencies
pip install -e ".[tests]"
# Run Robot tests via nox (never directly)
nox -s integration_tests
# Run a specific Robot suite
nox -s integration_tests -- robot/suites/actor_cli.robot
```
**Symptom:** `FAIL: Setup failed: ...`
Check that the test environment is clean:
```bash
# Reset the test database
CLEVERAGENTS_DATA_DIR=/tmp/cleveragents-test agents diagnostics
# Ensure mock AI is enabled for tests
export CLEVERAGENTS_TESTING_USE_MOCK_AI=true
```
### Behave step not found
**Symptom:** `NotImplementedError: STEP NOT IMPLEMENTED`
The Behave step definition is missing. Check `features/steps/` for the relevant step file and add the missing step implementation.
### Pre-commit hook failures
```bash
# Run all hooks manually
pre-commit run --all-files
# Run a specific hook
pre-commit run ruff --all-files
pre-commit run pyright --all-files
# Skip hooks temporarily (not recommended for CI)
git commit --no-verify -m "wip: ..."
```
---
## Common Error Messages
### `Error [400] BAD_REQUEST: name must be in 'namespace/name' format`
Actor, tool, or skill names must include a namespace prefix separated by `/`.
-`my-actor`
-`local/my-actor`
### `Error [401] UNAUTHORIZED: Invalid API key`
The API key for the selected provider is invalid or expired. Regenerate it from the provider's dashboard and update your environment variable.
### `Error [404] NOT_FOUND: Resource '...' not found`
The referenced resource, actor, skill, or tool does not exist in the registry. Use `agents actor list`, `agents resource list`, or `agents tool list` to see what is registered.
### `Error [409] CONFLICT: Actor '...' already exists`
You are trying to register an actor with a name that is already taken. Use `agents actor update` to modify an existing actor, or choose a different name.
### `Error [422] VALIDATION_FAILED: ...`
A configuration value or input failed schema validation. The error message includes the field path and the validation rule that failed. See the relevant schema reference for the correct format.
### `Error [500] INTERNAL: Unexpected error`
An unhandled exception occurred. Enable debug logging to get the full traceback:
```bash
CLEVERAGENTS_LOG_LEVEL=DEBUG agents <command> 2>debug.log
cat debug.log
```
Report the issue with the log output at the [issue tracker](https://git.cleverthis.com/cleveragents/cleveragents-core/issues).
### `Error [520] PROVIDER_ERROR: ...`
The LLM provider returned an error. Common causes:
- Invalid API key → check `agents diagnostics`
- Model not available in your region → try a different model
- Provider outage → check the provider's status page
### `Error [521] EXECUTION_ERROR: SandboxCreationError`
See [Sandbox creation failure](#sandbox-creation-failure) above.
### `Error [522] DATABASE_ERROR: database is locked`
See [Database locked](#database-locked) above.
### `Error [525] CONFIGURATION_ERROR: No LLM provider is configured`
No API key is set for any supported provider. See [Missing API key](#missing-api-key) above.
### `Error [527] MODEL_UNAVAILABLE: ...`
The requested model does not exist or is not accessible with your API key. See [Model not found](#model-not-found) above.
---
## Diagnostic Commands
### `agents diagnostics`
Runs a comprehensive health check covering configuration, database, provider API keys, disk space, file permissions, and git availability.
```bash
# Basic diagnostics (human-readable)
agents diagnostics
# JSON output (useful for scripting)
agents diagnostics --format json
# Fail with exit code 1 if any check errors (useful in CI)
agents diagnostics --check
```
See [Diagnostics Check List](../reference/diagnostics_checks.md) for the full list of checks and their remediation steps.
### `agents actor list`
Lists all registered actors, including built-in and custom actors.
```bash
agents actor list
agents actor list --verbose # show full configuration
```
### `agents resource list`
Lists all registered resources.
```bash
agents resource list
agents resource list --type git-checkout
```
### `agents plan status <plan-id>`
Shows the current status and phase of a plan.
```bash
agents plan status 01HZ...
```
### `agents plan tree <plan-id>`
Displays the full decision tree for a plan, showing every decision made during Strategize and Execute phases.
```bash
agents plan tree 01HZ...
```
### `agents plan errors <plan-id>`
Lists errors and invariant violations associated with a plan.
```bash
agents plan errors 01HZ...
```
### `agents config list`
Shows the current effective configuration, including all `CLEVERAGENTS_*` environment variables and config file values.
```bash
agents config list
agents config list --format json
```
---
## Getting Help
### Documentation
- **Full documentation:** [https://docs.cleverthis.com/cleveragents](https://docs.cleverthis.com/cleveragents)
- **API Reference:** [docs/api/](../api/index.md)
- **Configuration Reference:** [docs/api/config.md](../api/config.md)
- **Actor Configuration:** [docs/reference/actor_config.md](../reference/actor_config.md)
- **Provider Capability Matrix:** [docs/reference/providers.md](../reference/providers.md)
- **Diagnostics Check List:** [docs/reference/diagnostics_checks.md](../reference/diagnostics_checks.md)
- **FAQ:** [docs/guides/faq.md](faq.md)
### Reporting Issues
Before filing an issue, please:
1. Run `agents diagnostics` and include the output.
2. Enable debug logging and include the relevant log lines:
```bash
CLEVERAGENTS_LOG_LEVEL=DEBUG agents <command> 2>debug.log
```
3. Include your Python version (`python --version`) and CleverAgents version (`agents --version`).
File issues at: [https://git.cleverthis.com/cleveragents/cleveragents-core/issues](https://git.cleverthis.com/cleveragents/cleveragents-core/issues)
### Community
- Check existing issues and discussions before opening a new one.
- See [CONTRIBUTING.md](../../CONTRIBUTING.md) for contribution guidelines.
+4
View File
@@ -41,6 +41,10 @@ nav:
- Automation Tracking: development/automation-tracking.md
- Custom Sandbox Strategy: development/custom_sandbox_strategy.md
- Documentation Writer: development/docs-writer.md
- Guides:
- Overview: guides/index.md
- Troubleshooting: guides/troubleshooting.md
- FAQ: guides/faq.md
- Implementation Timeline: timeline.md
- FAQ: faq.md
- Reference: reference/