Actor add command fails without name when actor name is defined in YAML config. #6714

Open
opened 2026-04-09 23:47:46 +00:00 by brent.edwards · 2 comments
Member

Given

Run the following script in a fresh directory:

cat << EOF > simple_llm.yaml
# Simple LLM Actor Example
# Demonstrates the most basic actor configuration with just an LLM and system prompt

name: local/code_reviewer
type: llm
description: Reviews Python code for best practices, style, and potential bugs
version: "1.0"

# LLM configuration
provider: openai
model: gpt-4
system_prompt: |
  You are an expert Python code reviewer. Review code for:
  - PEP 8 style compliance
  - Best practices and design patterns
  - Potential bugs and edge cases
  - Performance considerations
  - Security vulnerabilities

  Provide constructive feedback with specific suggestions for improvement.

# Context and memory settings
context_view: reviewer
memory:
  enabled: true
  max_messages: 20
  max_tokens: 4000

context:
  include_files:
    - "README.md"
    - "pyproject.toml"
  include_dirs:
    - "src/"
  exclude_patterns:
    - "**/__pycache__/**"
    - "*.pyc"
    - "**/.pytest_cache/**"
  max_context_tokens: 8000
EOF

uv venv -c
source .venv/bin/activate
uv pip install /app
agents init --force

When

agents actor add --config simple_llm.yaml

Expected

(tests) ➜  tests agents actor add --config simple_llm.yaml
╭─────── Actor added ───────╮
│ Name: local/code_reviewer │
│ Provider: openai          │
│ Model: gpt-4              │
│ Default: no               │
│ Unsafe: no                │
│ Type: llm                 │
╰───────────────────────────╯
╭──────────────────────────────── Config ────────────────────────────────╮
│ Path: simple_llm.yaml                                                  │
│ Hash: d3d2fc4f25c321773cfaa23ab6b83db543b643c04d5a906ddab4ade931f8ba77 │
│ Options: 0                                                             │
│ Nodes: 0                                                               │
│ Edges: 0                                                               │
╰────────────────────────────────────────────────────────────────────────╯
✓ OK Actor added

Actual

(tests) ➜  tests agents actor add --config simple_llm.yaml
Wrapping unexpected exception: MissingParameter: Missing parameter: name
Error [500] INTERNAL: An unexpected error occurred

Notice

According to docs/specification.md, the command for actor should be:

agents actor add --config|-c <FILE> [--update]
Purpose Add a new actor configuration, or replace an existing one with --update. The actor is fully defined by the YAML configuration file specified with --config. If a local actor with the same name already exists, the command fails unless the --update flag is provided, which replaces the existing actor.

This code works when the name of the actor is provided -- for example, agents actor add local/code-reviewer --config simple_llm.yaml.

# Given Run the following script in a fresh directory: ``` cat << EOF > simple_llm.yaml # Simple LLM Actor Example # Demonstrates the most basic actor configuration with just an LLM and system prompt name: local/code_reviewer type: llm description: Reviews Python code for best practices, style, and potential bugs version: "1.0" # LLM configuration provider: openai model: gpt-4 system_prompt: | You are an expert Python code reviewer. Review code for: - PEP 8 style compliance - Best practices and design patterns - Potential bugs and edge cases - Performance considerations - Security vulnerabilities Provide constructive feedback with specific suggestions for improvement. # Context and memory settings context_view: reviewer memory: enabled: true max_messages: 20 max_tokens: 4000 context: include_files: - "README.md" - "pyproject.toml" include_dirs: - "src/" exclude_patterns: - "**/__pycache__/**" - "*.pyc" - "**/.pytest_cache/**" max_context_tokens: 8000 EOF uv venv -c source .venv/bin/activate uv pip install /app agents init --force ``` # When ``` agents actor add --config simple_llm.yaml ``` # Expected ``` (tests) ➜ tests agents actor add --config simple_llm.yaml ╭─────── Actor added ───────╮ │ Name: local/code_reviewer │ │ Provider: openai │ │ Model: gpt-4 │ │ Default: no │ │ Unsafe: no │ │ Type: llm │ ╰───────────────────────────╯ ╭──────────────────────────────── Config ────────────────────────────────╮ │ Path: simple_llm.yaml │ │ Hash: d3d2fc4f25c321773cfaa23ab6b83db543b643c04d5a906ddab4ade931f8ba77 │ │ Options: 0 │ │ Nodes: 0 │ │ Edges: 0 │ ╰────────────────────────────────────────────────────────────────────────╯ ✓ OK Actor added ``` # Actual ``` (tests) ➜ tests agents actor add --config simple_llm.yaml Wrapping unexpected exception: MissingParameter: Missing parameter: name Error [500] INTERNAL: An unexpected error occurred ``` # Notice According to `docs/specification.md`, the command for actor should be: ```agents actor add --config|-c <FILE> [--update]``` Purpose Add a new actor configuration, or replace an existing one with --update. The actor is fully defined by the YAML configuration file specified with --config. If a local actor with the same name already exists, the command fails unless the --update flag is provided, which replaces the existing actor. This code works when the name of the actor is provided -- for example, `agents actor add local/code-reviewer --config simple_llm.yaml`.
brent.edwards added this to the v3.2.0 milestone 2026-04-09 23:47:46 +00:00
Owner

Thank you for filing this issue, @brent.edwards. This is a clear and well-documented bug report with reproduction steps.

Triage Assessment

Summary: agents actor add --config <FILE> fails with MissingParameter: Missing parameter: name when the actor name is defined in the YAML config file. The spec states the command signature is agents actor add --config|-c <FILE> [--update] — the name should be read from the YAML, not required as a separate positional argument.

Completeness check:

  • Clear title and description
  • Reproduction script provided
  • Expected vs actual behavior documented
  • Spec reference cited
  • Workaround noted (agents actor add local/code-reviewer --config simple_llm.yaml)

Triage decision:

  • Type: Bug — confirmed spec deviation. The spec explicitly states the actor is "fully defined by the YAML configuration file specified with --config", which implies the name field in the YAML should be sufficient.
  • Priority: Medium — there is a workaround (providing the name as a positional argument), but the spec-compliant invocation fails.
  • Milestone: v3.2.0 — already assigned, correct.
  • Story Points: S (2 points) — the fix is targeted: read the name field from the parsed YAML config when no positional name argument is provided.

Root cause: The CLI command likely requires name as a mandatory positional argument even when the YAML config contains a name field. The fix should make name optional as a positional argument and fall back to reading it from the YAML config.

Next step: This issue is ready for implementation. The implementation team will pick it up in the normal course.


Automated by CleverAgents Bot
Supervisor: Human Liaison | Agent: human-liaison

Thank you for filing this issue, @brent.edwards. This is a clear and well-documented bug report with reproduction steps. ## Triage Assessment **Summary**: `agents actor add --config <FILE>` fails with `MissingParameter: Missing parameter: name` when the actor name is defined in the YAML config file. The spec states the command signature is `agents actor add --config|-c <FILE> [--update]` — the name should be read from the YAML, not required as a separate positional argument. **Completeness check**: - Clear title and description - Reproduction script provided - Expected vs actual behavior documented - Spec reference cited - Workaround noted (`agents actor add local/code-reviewer --config simple_llm.yaml`) **Triage decision**: - **Type**: Bug — confirmed spec deviation. The spec explicitly states the actor is "fully defined by the YAML configuration file specified with `--config`", which implies the `name` field in the YAML should be sufficient. - **Priority**: Medium — there is a workaround (providing the name as a positional argument), but the spec-compliant invocation fails. - **Milestone**: v3.2.0 — already assigned, correct. - **Story Points**: S (2 points) — the fix is targeted: read the `name` field from the parsed YAML config when no positional name argument is provided. **Root cause**: The CLI command likely requires `name` as a mandatory positional argument even when the YAML config contains a `name` field. The fix should make `name` optional as a positional argument and fall back to reading it from the YAML config. **Next step**: This issue is ready for implementation. The implementation team will pick it up in the normal course. --- **Automated by CleverAgents Bot** Supervisor: Human Liaison | Agent: human-liaison
brent.edwards changed title from In agents actor add, name is not in documentation. to Actor add command fails without name when actor name is defined in YAML config. 2026-04-09 23:55:25 +00:00
Owner

Issue verified and triaged:

  • Priority: Medium — workaround exists (agents actor add <name> --config <file>), but spec-compliant invocation fails
  • Milestone: v3.2.0
  • Story Points: S (2 points) — targeted fix to make name optional when present in YAML config
  • Next step: This issue is now ready for implementation.

Automated by CleverAgents Bot
Supervisor: Human Liaison | Agent: human-liaison

Issue verified and triaged: - **Priority**: Medium — workaround exists (`agents actor add <name> --config <file>`), but spec-compliant invocation fails - **Milestone**: v3.2.0 - **Story Points**: S (2 points) — targeted fix to make `name` optional when present in YAML config - **Next step**: This issue is now ready for implementation. --- **Automated by CleverAgents Bot** Supervisor: Human Liaison | Agent: human-liaison
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
cleveragents/cleveragents-core#6714
No description provided.