Agent Forge SDK
Release history for the Agent Forge SDK (configuration management tooling).
Current Version: v0.3.22 | Compatibility: Amigo API v0.7.0+
v0.3.22 - Temporary Conversation Access & AgentEngineerRole Removal (March 3, 2026)
Agent Forge v0.3.22 replaces the overly-permissive AgentEngineerRole with per-conversation, time-limited access grants. Engineers now request temporary access to specific conversations instead of having blanket org-wide visibility.
Why This Matters: The AgentEngineerRole granted full conversation visibility across the entire organization -- far more access than needed for debugging a single conversation. The new temporary access system enforces least-privilege: engineers request access to a specific conversation with a justification, and the grant expires automatically (default: 2 hours).
New Commands
forge conversation request-access
Request time-limited access to a specific conversation
forge conversation list-access
List active and expired temporary access grants
Example: Request Conversation Access
# Request access to a conversation (default: 2 hours)
forge conversation request-access https://org.amigo.ai/admin/conversation/abc123 \
-j "Debugging reported issue #42"
# Custom duration
forge conversation request-access abc123def456abc123def456 -e production \
-j "Reviewing feedback" -d PT4H
# Grant access to a colleague
forge conversation request-access https://org.amigo.ai/admin/conversation/abc123 \
-j "Pair debugging session" --user-email [email protected]Example: List Active Grants
# List your active grants
forge conversation list-access -e production
# Show all users' grants including expired
forge conversation list-access -e production --all --show-expired
# JSON output for scripting
forge conversation list-access -e production --jsonCommand Options: forge conversation request-access
CONVERSATION
Yes
--
Conversation URL or 24-char ID
--env / -e
Conditional
From URL
Environment name
--justification / -j
Yes
--
Reason for access (min 10 chars)
--duration / -d
No
PT2H
ISO 8601 duration (e.g., PT2H, PT30M, P1D)
--user-email
No
Self
Grant access to another user by email
--json
No
false
JSON output
Command Options: forge conversation list-access
--env / -e
Yes
--
Environment name
--all
No
false
Show grants for all users
--show-expired
No
false
Include expired grants
--json
No
false
JSON output
Breaking Change: AgentEngineerRole Removed
The AgentEngineerRole predefined role has been removed from forge role list and forge role provision. If you were using this role:
Use
forge conversation request-accessto get per-conversation access as neededThe underlying platform admin role (
DefaultAmigoAdministratorRole) remains unchangedExisting
AgentEngineerRoleassignments in organizations are not affected (the role still exists remotely if previously provisioned)
Key Behaviors
Each
request-accesscall creates 3 permission grants:GetConversation,GetMessage,GetInteractionInsightsGrants are scoped to the specific conversation's owner and organization
Grants auto-expire after the specified duration
All grants are tagged with
source: forge-cliand the conversation ID for auditabilityPartial failures are reported (e.g., if 2 of 3 grants succeed)
Related Pull Request
agent-forge#294 - Add temporary conversation access CLI and remove AgentEngineerRole
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
v0.3.21 - User Management & Impersonation (February 20, 2026)
Agent Forge v0.3.21 adds a full forge user command group for user CRUD operations and a --user impersonation flag on conversation commands, enabling developers to run conversations as any existing user without creating ephemeral test accounts.
Why This Matters: Testing user-specific agent behaviors (personalized context, memory, conversation history) previously required either creating disposable test users or manually calling the API. The new forge user commands provide first-class user management, and the --user flag lets you run smoke tests or simulations as any real user via API key impersonation.
New Command Group: forge user
forge user list
List users with search, email filter, and pagination
forge user get
Get user details by ID or email (shows conversation and memory counts)
forge user create
Create a new user with optional initial context
forge user update
Update user context entries
forge user delete
Remove a user from the organization
New Flag: --user / -u on Conversation Commands
forge conversation smoke-test --user
Run smoke test as an existing user
forge conversation simulate --user
Run simulation as an existing user
forge conversation simulate-step --user
Run step-by-step simulation as an existing user
Example: User Management
# List users with search
forge user list -e myorg --search "john"
# Get user by email
forge user get -e myorg --email "[email protected]"
# Create user with context
forge user create -e myorg --first-name John --last-name Doe --email "[email protected]" \
-c "Care Recipient: Bella, Age 5"
# Update user context
forge user update -e myorg -u USER_ID -c "New context entry"
# Delete user
forge user delete -e myorg -u USER_IDExample: Impersonation
# Smoke test as a specific user
forge conversation smoke-test -s "My Service" -e myorg --user USER_ID -m "Hello"
# Smoke test with email lookup
forge conversation smoke-test -s "My Service" -e myorg --user "[email protected]" -m "Hello"
# Simulate as a specific user with temporary context
forge conversation simulate -s "My Service" -e myorg --user USER_ID \
--additional-context "Temporary test context" --max-turns 5Command Options: forge user list
--env / -e
Environment name (required)
--search / -q
Search by name or email
--email
Filter by exact email
--limit
Maximum results to show
--json
JSON output for scripting
Command Options: forge user create
--env / -e
Environment name (required)
--first-name
User's first name (required)
--last-name
User's last name (required)
--email
User's email (required)
--role
Role to assign (default: DefaultUserRole)
--context / -c
Context string to add (repeatable)
--file / -f
File containing context entries
Key Behaviors
--useraccepts either a user ID or email address (auto-resolves email to ID)Impersonation requires API key authentication (Firebase auth does not support impersonation)
When
--useris combined with--additional-context, the user's original context is saved, temporarily replaced, and restored after the testforge test-user set-contextis deprecated in favor offorge user update -cforge usermanages real accounts;forge test-usermanages ephemeralsimtest_*accounts for parallel testing
Related Pull Request
agent-forge#268 - Add forge user commands and --user impersonation flag
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
v0.3.20 - Version List Pagination & Sorting (February 20, 2026)
Agent Forge v0.3.20 adds a --newest-first flag and automatic pagination to all version-list commands, overcoming the API's 10-item-per-page limit and enabling developers to quickly find recent versions.
Why This Matters: When agents or context graphs have many versions, the default oldest-first ordering buries the latest versions at the end. The API also returns at most 10 items per page, requiring manual pagination. This release adds descending sort and transparent multi-page fetching so --limit 50 actually returns 50 results.
Enhanced Commands
forge asset agent version-list
Added --newest-first / -d flag and pagination
forge asset context-graph version-list
Added --newest-first / -d flag and pagination
forge asset behavior version-list
Added --newest-first / -d flag and pagination
Example: Find Recent Versions
# Show newest versions first
forge asset agent version-list MyAgent -e production --newest-first
# Get the 50 most recent versions (fetches multiple API pages automatically)
forge asset agent version-list MyAgent -e production --newest-first --limit 50
# Works for all asset types
forge asset context-graph version-list MyGraph -e production -d --limit 20
forge asset behavior version-list "My Behavior" -e production -dNew Options
--newest-first / -d
Sort by version descending (newest first). Default: ascending
--limit
Maximum results to return (pagination fetches up to this count automatically)
Key Behaviors
Pagination is transparent: the CLI automatically follows
continuation_tokento fetch subsequent pages up to the requested--limitSafety limit of 100 API pages prevents infinite loops
Page size is optimized on the last page to fetch only remaining items
Default sort order (ascending) is unchanged for backward compatibility
Related Pull Request
agent-forge#269 - Add --newest-first flag and pagination to version-list commands
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
v0.3.19 - Ergonomic Update Diffs (February 19, 2026)
Agent Forge v0.3.19 introduces type-aware diff formatting for entity updates, making it much easier to review what actually changed when syncing entities.
Why This Matters: Entity updates often involve nested JSON structures (agent backgrounds, context graph states, behavior triggers). Previously, diffs showed raw before/after values that were difficult to parse. The new system adapts formatting based on value type -- simple strings stay inline, long text uses unified diffs, and complex objects show semantic change summaries.
Improved Diff Display
The diff system now uses three tiers:
Simple values (<=100 chars)
Inline in summary table
"old value" -> "new value"
Long strings (>100 chars)
Unified text diff (---/+++)
Like git diff output
Dicts/lists
Semantic DeepDiff summary
~ ['expertise'][2]: "old" -> "new"
Example: Semantic Diff Output
Field: background
~ ['expertise'][2]: "old text" -> "new text"
+ ['references']: list with 3 item(s)
- ['deprecated_field']: removed
... and 5 more change(s)Key Behaviors
Inline values truncated to 120 characters for readability
Up to 20 changes displayed per field before showing
... and N more change(s)Works across all entity types (agents, behaviors, context graphs, services)
Applies to
forge strand any command that shows update diffs
Related Pull Request
agent-forge#266 - Implement more ergonomic update diffs
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
v0.3.18 - Tool Scaffold Install (February 12, 2026)
Agent Forge v0.3.18 adds a forge tool-scaffold install command that automates installation of the amigo_tool_scaffold package into tool directories using uv, streamlining the tool development setup process.
Why This Matters: Tool developers previously had to manually configure package manager authentication and run uv add commands in each tool directory. This command handles authentication, uv version validation, and package installation in a single step.
New Command
forge tool-scaffold install
Install amigo_tool_scaffold in tool directories
Example: Install Tool Scaffold
# Interactive tool selection (prompts for which tool to install in)
forge tool-scaffold install -e myorg
# Install in a specific tool
forge tool-scaffold install -e myorg --tool my_tool
# Install in all tools
forge tool-scaffold install -e myorg --all
# Verbose output for debugging
forge tool-scaffold install -e myorg --all --verboseCommand Options
--env / -e
Yes
Environment name
--tool / -t
No
Install in a specific tool directory
--all
No
Install in all tool directories
--verbose / -v
No
Enable verbose output
Key Behaviors
Requires
uv >= 0.10.2(validated at startup with a clear error message if missing)Discovers tools by scanning
local/{env}/tools-{org_id}/forpyproject.tomlfilesAuthenticates via the configured auth method (API key or Firebase)
Runs
uv auth loginfollowed byuv add amigo_tool_scaffoldfor each target toolIf neither
--toolnor--allis specified, presents an interactive selection menu
Related Pull Request
agent-forge#263 - Add tool-scaffold install command
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
v0.3.17 - Firebase Authentication (February 12, 2026)
Agent Forge v0.3.17 migrates authentication from API keys to Firebase-based Google Sign-In using the OAuth 2.0 device authorization flow (RFC 8628). Existing API key authentication remains fully supported for backward compatibility.
Why This Matters: API key management creates operational overhead -- keys must be generated, distributed securely, and rotated periodically. Firebase authentication provides a more ergonomic flow: developers sign in with their Google account once, and tokens refresh automatically. This also aligns Forge CLI authentication with the web platform's auth model.
New Authentication Method
API Key (existing)
API_KEY, API_KEY_ID, API_KEY_USER_ID all present in .env
No changes needed
Firebase (new default)
API key fields absent, GOOGLE_TENANT_ID present
One-time forge auth login
New Command
forge auth login
Authenticate via Google Sign-In device code flow
Example: Firebase Authentication
Environment Configuration
Key Behaviors
Auth method is selected automatically based on which environment variables are present
Firebase tokens are cached in the system keyring for persistent, secure credentials
Tokens refresh silently on subsequent commands (no repeated login prompts)
Keyring save failures are non-fatal -- commands continue to work even if the system keyring is unavailable
The
--userimpersonation flag (v0.3.21) requires API key auth; Firebase does not support impersonation
Related Pull Request
agent-forge#251 - Migrate Amigo API auth to Firebase-based auth
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.Add
GOOGLE_TENANT_IDto your.env.{env}file (get the tenant ID from your org admin).Run
forge auth login -e <env>to authenticate.
v0.3.16 - Auto-Finish for Simulations (February 11, 2026)
Agent Forge v0.3.16 adds smart conversation lifecycle management: conversations auto-finish when the agent marks them complete, and the simulate command always finishes conversations in its cleanup path to prevent orphaned sessions.
Why This Matters: Open conversations that are never finished don't trigger post-processing (memory extraction, metric evaluation). Previously, simulate-step users had to manually finish conversations, and error paths in simulate could leave conversations dangling. This release ensures conversations are always properly closed.
Enhanced Commands
forge conversation simulate-step
Auto-finishes when agent marks is_finished=true; new --finish flag
forge conversation simulate
Always finishes conversations in finally block; new --stop-on-finished flag
Example: Auto-Finish in Step Mode
Example: Stop-on-Finished in Simulate
New Options
simulate-step
--finish
Explicitly finish the conversation
simulate
--stop-on-finished
Stop when agent marks conversation as finished
Key Behaviors
simulate-step: Checksis_finishedin the API response; auto-finishes and includes"finished": truein JSON outputsimulate: Finishes conversations in thefinallyblock regardless of success/error (not just for--test-user+--analyze-wait)Keyring save failures are now non-fatal (graceful degradation on broken macOS keychains)
Related Pull Request
agent-forge#255 - Add auto-finish for simulation conversations and make keyring non-fatal
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
v0.3.15 - Additional Context for Test Users (February 10, 2026)
Agent Forge v0.3.15 adds first-class support for setting additional_context on test users during CLI-based agent testing. This enables testing agents that depend on user context (care recipient profiles, ages, person IDs) without manually configuring test users.
Why This Matters: Many agents rely on additional_context to personalize conversations -- for example, knowing a care recipient's name, age, or medical profile. Previously, testing these agents required manually creating users and setting context through the API. Now, smoke-test handles the full lifecycle automatically: create an ephemeral test user, set context, run the test, and clean up.
New Command
forge test-user set-context
Set additional context entries on a user
Command Options
--user-id / -u
The user ID to set context for
--context / -c
Context string to add (repeatable)
--file / -f
File containing context entries (one per line)
--env / -e
Environment name
Enhanced Command: forge conversation smoke-test
--additional-context / -ac
Context string for the test user (repeatable)
--additional-context-file / -acf
File containing context entries (one per line)
When either flag is provided, smoke-test auto-creates an ephemeral test user, sets the context, runs the test as that user, and cleans up afterward.
Example: Smoke Test with Context
Example: Standalone Context Management
Key Behaviors
When
--additional-contextor--additional-context-fileis provided, an ephemeral test user is created automaticallyThe test user is cleaned up after the test completes (including on error paths)
JSON output includes
additional_context_entriescount when context was providedThe standalone
set-contextcommand works on any existing user
Related Pull Request
agent-forge#252 - Add additional_context support for test users
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
v0.3.14 - Interaction-Level Insights & Smoke Test (February 10, 2026)
Agent Forge v0.3.14 adds two features for faster debugging and verification: an --interaction flag on forge conversation insights for drilling into a single interaction, and a new forge conversation smoke-test command for one-shot agent verification.
Why This Matters: When debugging a conversation with dozens of interactions, fetching insights for all of them is slow and noisy. The --interaction flag lets you focus on the exact turn that has the issue. The smoke-test command fills the gap between manual start/send/finish chaining and full simulate runs -- a single command to verify an agent responds correctly after deploying changes.
New Command
forge conversation smoke-test
Quick one-shot test: create conversation, show response, finish
Enhanced Command
forge conversation insights
Added --interaction / -i flag for single-interaction deep dive
Example: Interaction-Level Insights
When --interaction is provided:
Only messages from that interaction are displayed
Insights are fetched for that single interaction only
Summary reflects the filtered view
JSON output includes an
interaction_idfield showing the active filter
Example: Quick Smoke Test
Smoke Test Command Options
--service / -s
Yes
Service name or ID
--env / -e
Yes
Environment name
--message / -m
No
User message to send. If omitted, only the agent greeting is shown
--version-set / -v
No
Version set to use (default: release)
--json
No
Output as JSON for programmatic use
Key Behaviors
Smoke test always finishes (cleans up) the conversation after the test
Without
--message: creates conversation, shows agent greeting, finishesWith
--message: creates conversation with initial message, shows agent response, finishesConversation URL is displayed for follow-up investigation with
forge conversation insights
Related Pull Request
agent-forge#249 - Add --interaction flag to insights and conversation smoke-test command
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
v0.3.13 - Dynamic Behavior Invocation History (February 9, 2026)
Agent Forge v0.3.13 adds a new forge asset behavior invocations command that retrieves the invocation history of a dynamic behavior set, showing when, where, and how many times a behavior was triggered via the GET /dynamic_behavior_set/{id}/invocation/ backend endpoint.
Why This Matters: When debugging dynamic behaviors, developers need to verify that triggers are firing correctly and understand activation frequency across conversations. Previously, this required querying Databricks tables directly or navigating the web UI. This command provides quick CLI access to invocation records for rapid iteration and troubleshooting.
New Command
forge asset behavior invocations
List invocation history for a dynamic behavior set
Example: Check Behavior Invocation History
Command Options
BEHAVIOR
Yes
Behavior name or ID (positional)
--env / -e
Yes
Environment name
--limit / -n
No
Maximum invocations to show (default: 30)
--json
No
Output as JSON (includes conversation_id, service_id, user_id, version info)
Key Behaviors
Shows invoked_at timestamp, conversation ID, service ID, user ID, and behavior version for each trigger
Accepts behavior name (resolved via API) or direct 24-char hex ID
Results sorted by most recent first (
-invoked_at)JSON output enables cross-referencing with Databricks
dynamic_behavior_invocationstable
Related Pull Request
agent-forge#248 - Add behavior invocations command
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
v0.3.12 - Message Source Retrieval (February 9, 2026)
Agent Forge v0.3.12 adds a new forge conversation message-source command that retrieves the raw source of non-text messages (e.g., audio recordings from voice channels) via the GET /conversation/{id}/messages/{msg_id}/source backend endpoint.
Why This Matters: When debugging voice conversations, developers previously had no CLI way to access the original audio recordings -- they had to navigate the web UI or call the API directly. This command returns a signed URL to the source data, enabling quick access for quality review, debugging, and archival.
New Command
forge conversation message-source
Retrieve raw source of a non-text message (audio URL)
Example: Retrieve Audio Source
Command Options
CONVERSATION
Yes
Conversation ID or full Amigo URL (positional)
MESSAGE_ID
Yes
Message ID -- 24 hex characters (positional)
--env / -e
Conditional
Environment name (required when using ID, inferred from URL)
--long-lived
No
Generate a 12-hour URL instead of short-lived (default: false)
--json
No
Output as JSON
Key Behaviors
Returns a signed URL to the original message source (audio file, etc.)
Only works for non-text messages; text messages return an informative error
Short-lived URLs by default for security; use
--long-livedfor 12-hour URLsAccepts conversation as URL (env inferred) or ID (requires
--env)
Also in this release: Replaced customer-specific org names in documentation with generic placeholders.
Related Pull Request
agent-forge#247 - Add message-source command
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
v0.3.11 - Conversation Starter Generation (February 9, 2026)
Agent Forge v0.3.11 adds a new forge conversation starter command that generates contextually appropriate conversation starters for a service using its agent configuration and the POST /conversation/conversation_starter backend endpoint.
Why This Matters: Building effective conversation starters previously required manual authoring or starting throwaway conversations to see what the agent would say. This command generates facet-targeted starters in seconds, useful for populating UI widgets, seeding test scenarios, and exploring how an agent introduces itself across different topics.
New Command
forge conversation starter
Generate conversation starters for a service based on facets and instructions
Example: Generate Starters
Command Options
--service / -s
Yes
Service name or ID
--env / -e
Yes
Environment name
--instructions
Yes
Instructions for starter generation
--facet
Yes (1+)
Facet to focus starters on (repeatable)
--min-count
No
Minimum starters to generate, 1-10 (default: 3)
--max-count
No
Maximum starters to generate, 1-10 (default: 5)
--version-set / -v
No
Version set to use (default: release)
--json
No
Output as JSON
Key Features
Facet-based generation: each starter is tagged with which facets it relates to
Rich terminal output with numbered panels, or JSON for scripting
Client-side validation of count ranges (1-10) before API call
Service name resolution (accepts name or ID)
Related Pull Request
agent-forge#245 - Add conversation starter command
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
v0.3.10 - Section-Aware Prompt Diff and Mutation Chain (February 9, 2026)
Agent Forge v0.3.10 adds two commands for understanding how system prompts evolve during conversations: forge prompt-log diff for comparing two interactions, and forge prompt-log chain for viewing prompt evolution across an entire conversation.
Why This Matters: System prompts for engage_user interactions are 80-100K characters and change between interactions as context updates, state transitions occur, and dynamic behaviors trigger. Previously, comparing prompts required downloading full text files and manually diffing. These commands parse the 13 XML sections defined by the backend Jinja2 template, classify each section by its change behavior, and surface only meaningful differences.
New Commands
forge prompt-log diff
Section-aware diff between two interactions' system prompts
forge prompt-log chain
Show prompt mutation chain across an entire conversation
Section Classification
Each section is classified by how it changes, derived from the chat_agent_engage_user.jinja2 template variables:
static
PERSONA, SERVICE_DESCRIPTION, INTERACTION_LOG_FORMAT, BEHAVIORAL_GUIDELINES, COMMUNICATION_GUIDELINES
Never (within a conversation)
tool-dependent
CORE_AGENT_INSTRUCTIONS, CAPABILITIES_AND_CONSTRAINTS, TASK
has_tools flips between states
per-interaction
CONTEXT, DYNAMIC_BEHAVIORS, ACTION_GUIDELINES
Every interaction
state-transition
OBJECTIVE, CURRENT_ACTION
Context graph state changes
Example: Diff Two Interactions
Output shows a summary of which sections changed (with classification) followed by unified diffs for each changed section. Unchanged static and tool-dependent sections are hidden by default.
Example: Mutation Chain
Example Output (Summary)
Transition Type Annotations
(baseline)
First interaction (no comparison)
(state)
Context graph state changed (OBJECTIVE/CURRENT_ACTION)
(tools)
has_tools flipped (CORE_AGENT_INSTRUCTIONS/CAPABILITIES_AND_CONSTRAINTS/TASK)
(state+tools)
Both state and tools changed simultaneously
(dynamic)
Only per-interaction sections changed (typical noise)
Command Options
diff
-c / --conversation-id
Conversation ID
diff
--int1, --int2
First and second interaction IDs
diff
--file1, --file2
Diff local prompt files instead of downloading
diff
--all
Include unchanged static sections
diff
-t / --type
Prompt log type (default: engage_user)
chain
-c / --conversation-id
Conversation ID
chain
--verbose / -v
Show full unified diffs for each step
chain
--all
Include unchanged static sections in verbose output
chain
--json
JSON output for programmatic use
Rate Limiting: The prompt log download endpoint is limited to 5 requests/minute. The chain command handles this automatically with 12-second delays between requests and a progress bar showing elapsed time. A 10-interaction conversation takes ~2 minutes.
New Skill Documentation: Added Workflow 6 ("What Changed Between Interactions?") to prompt-log-analyst skill with four approaches: section-aware diff (A), manual full-text diff (B), Databricks SQL discovery (C), and full conversation mutation chain (D).
Related Pull Request
agent-forge#243 - Add section-aware prompt log diff and mutation chain commands
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
v0.3.9 - On-Demand Metric Evaluation (February 9, 2026)
Agent Forge v0.3.9 adds forge conversation evaluate -- a new composable command that calls POST /metric/evaluate synchronously against any conversation, at any interaction point. Previously, metric results were only available via the post-session async pipeline (--analyze-wait). Now you can evaluate specific metrics on-demand.
Why This Matters: The existing --analyze-wait flow requires the conversation to finish, evaluates all service-configured metrics, and waits for async processing. The new evaluate command is synchronous, lets you choose which metrics (1-10 per call), and works mid-conversation -- enabling quality gates during step-by-step simulations, targeted debugging of reported issues, and A/B comparison at different interaction points.
New Command
forge conversation evaluate
Evaluate specific metrics against a conversation on-demand
Command Options
--metric / -m
Metric name to evaluate (repeatable). Resolved from local files, then API search.
--metric-id
Metric ID to evaluate directly (repeatable). Skips name resolution.
--interaction / -i
Evaluate up to this interaction ID (mid-conversation scoping).
--env / -e
Environment name (inferred from URL if using conversation URL).
--json
Output as JSON for programmatic use.
Example: Evaluate by Metric Name
Example: Mid-Conversation Evaluation
Example: JSON Output
Post-Session vs On-Demand Evaluation
Command
simulate --analyze-wait 30
conversation evaluate
When
After conversation finishes
Any time, including mid-conversation
Which metrics
All configured on service
You choose (1-10 per call)
Scope
Entire conversation
Any interaction via --interaction
Use case
Automated test suites
Debugging, quality gates, comparison
Metric Name Resolution: --metric resolves names by scanning local entity files (local/{env}/entity_data/metric/*.json) first, falling back to API search. Use --metric-id for scripts or when you already have the ID.
Rate Limit: 20 requests/minute, max 10 metrics per call.
New Skill Documentation: Added conversation-analyst skill for quality diagnosis workflows using evaluate alongside insights, transcript, and simulate-step.
Related Pull Request
agent-forge#233 - Add forge conversation evaluate for on-demand metric evaluation
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
v0.3.8 - Ephemeral Test User Lifecycle (February 3, 2026)
Agent Forge v0.3.8 introduces ephemeral test user support for running parallel conversation simulations without conflicts. This enables isolated testing with automatic cleanup and post-processing analysis.
Why This Matters: Running multiple simulations in parallel previously caused "unfinished conversation" conflicts when using the same user. Now you can create ephemeral test users that are automatically cleaned up after simulation, with support for analyzing post-processing results (memory extraction, metrics computation).
New Commands
forge test-user create
Create a persistent test user for manual testing
forge test-user cleanup
Clean up orphaned test users matching a pattern
New Simulate Options
--test-user
Create an ephemeral test user for isolated simulation
--keep-test-user
Don't delete test user after simulation (for debugging)
--analyze-wait <seconds>
Wait for post-processing completion (memories, metrics)
Example: Parallel Simulations with Test Users
Example: Manual Test User Management
JSON Output with Test User
When using --test-user --json, the output includes test user and analysis information:
Key Features
Parallel execution: No more "unfinished conversation" conflicts
Isolated testing: Each test user has their own conversation history and memory
Post-processing analysis: Test memory extraction and metrics computation
Clean teardown: Automatic cleanup when simulation completes
Debugging support:
--keep-test-userpreserves user for investigation
Related Pull Request
agent-forge#227 - Add ephemeral test user lifecycle for parallel simulations
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
v0.3.7 - Simulation Loop CLI Commands (January 26, 2026)
Agent Forge v0.3.7 introduces comprehensive simulation loop commands for automated end-to-end conversation testing. These commands enable coding agents (Claude Code, Cursor, etc.) to drive conversations programmatically via the CLI.
Why This Matters: Testing agent conversations previously required manual interaction or custom scripts. Now you can run full automated simulations with configurable personas, scenarios, and temperaments directly from the CLI. The simulate-step command enables coding agents to drive conversations step-by-step, choosing which recommended response to send.
New Commands
forge conversation list-personas
List available personas (local files or API)
forge conversation list-scenarios
List available scenarios (local files or API)
forge conversation start
Start a new conversation with a service
forge conversation send
Send a message to an existing conversation
forge conversation finish
Mark a conversation as finished
forge conversation simulate
Run full automated conversation simulation
forge conversation simulate-batch
Run multiple simulations from config file
forge conversation simulate-step
Agent-driven step-by-step conversation steering
Example: Full Automated Simulation
Example: Agent-Driven Step-by-Step Testing
The simulate-step command is designed for coding agents to drive conversations with precise control:
Example: Batch Simulations
Run multiple simulations from a configuration file:
Example: Deterministic Workflows
Use --save and --pick-from for reproducible testing:
Enhanced Commands
recommend-responses: Added--saveand--pickoptions for deterministic workflows
Key Features
JSON-first output: All commands support
--jsonfor scripting and automationFlexible input: Accept conversation ID +
--envor full Amigo URLAgent-driven steering:
simulate-stepenables coding agents to drive conversations step-by-stepDeterministic workflow:
recommend-responses --savethensend --pick-from --indexTemperament options: cooperative, neutral, frustrated, confused, skeptical
Response modes: production, test, edge_cases, exit_conditions
User-first simulations:
--initial-messageoption for user-speaks-first scenarios
Exit Reasons
Simulations track why they ended via typed ExitReason enum:
max_turns_reached
Reached the maximum turn limit
conversation_finished
Agent marked conversation as complete
pattern_matched
Agent response matched --stop-on-pattern regex
no_interaction_id
Could not retrieve interaction ID
no_recommended_responses
No responses generated
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
Related Documentation
Automated Simulation Guide - Claude orchestration patterns
v0.3.6 - Tool Version Schema Cleanup (January 25, 2026)
Agent Forge v0.3.6 removes the unused tool_repo field from the Tool Version schema, simplifying the data model and CLI output.
Why This Matters: The tool_repo field in Tool Version schemas was no longer being used. Removing it streamlines the schema definition and reduces unnecessary information in CLI tool version displays.
What Changed
Removed
tool_repofield fromToolVersionSchemaUpdated
forge action publishoutput formatting to omit repository informationRemoved validation tests for invalid repository values
Breaking Changes
Tool Version schemas no longer include the
tool_repofieldCLI output for tool versions no longer displays repository information (now shows only lambda version:
(lambda=...))
Migration Guide
No action required. This change only removes an unused field from the schema.
Related Pull Request
agent-forge#205 - Remove tool_repo field from tool version schemas
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
v0.3.5 - Databricks MCP Integration (January 23, 2026)
Agent Forge v0.3.5 introduces the forge databricks command group for configuring Databricks MCP integration with Claude Code. This enables Claude Code to execute SQL queries directly against your Databricks workspaces.
Why This Matters: When working with data-intensive workflows, developers often need to query Databricks workspaces. Previously, this required manual configuration of MCP servers. Now you can automatically generate the required .mcp.json configuration from your existing Databricks CLI profiles, enabling seamless Claude Code integration with your data infrastructure.
New Commands
forge databricks setup
Generate .mcp.json from ~/.databrickscfg profiles
forge databricks validate
Check config format and token presence
forge databricks status
Show configured/unconfigured workspaces
Example: Quick Setup
Example: Setup with Options
Supported Workspaces
The following Databricks workspaces are preconfigured:
staging-us-east-1
dbc-088d0a13-3db3.cloud.databricks.com
databricks-staging-sql
production-us-east-1
dbc-13c72ec4-a3aa.cloud.databricks.com
databricks-prod-us-east-sql
production-ca-central-1
dbc-3f59c474-ef79.cloud.databricks.com
databricks-prod-ca-sql
production-eu-central-1
dbc-869e9f5b-1095.cloud.databricks.com
databricks-prod-eu-sql
production-ap-southeast-2
dbc-c326181c-95de.cloud.databricks.com
databricks-prod-ap-sql
Merging with Existing MCP Configurations
If your .mcp.json already contains other (non-Databricks) MCP server configurations, running forge databricks setup --force will preserve them. Only Databricks-related servers (those with names starting with databricks-) will be updated.
Verifying the Integration
After running forge databricks setup:
Restart Claude Code to load the new configuration
Check MCP server status - Claude Code should show the connected Databricks servers
Test with a simple query - Ask Claude to run
SHOW CATALOGSon a Databricks workspace
Security Note
The .mcp.json file contains authentication tokens and is automatically added to .gitignore. Never commit this file to version control.
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
v0.3.4 - Prompt Template Linting (January 22, 2026)
Agent Forge v0.3.4 introduces the forge prompt-lint command for detecting and fixing Unicode characters in entity data that cause LLM output degeneration.
Why This Matters: Unicode characters (smart quotes, em dashes, bullets) in prompt templates can shift token boundaries, causing repetitive loops, foreign character injection, and word fragments in LLM outputs. This linter catches these issues before they reach production.
New Commands
forge prompt-lint check
Lint entity data files for tokenization issues
forge prompt-lint fix
Auto-fix common Unicode issues
forge prompt-lint rules
Display lint rules reference
Example: Check for Issues
Example: Auto-fix Issues
What Gets Fixed
' ' (smart quotes)
'
" " (smart quotes)
"
— (em dash)
--
– (en dash)
-
• (bullet)
*
→ (arrow)
->
≥ ≤ (comparison)
>= <=
Zero-width chars
(removed)
Entity Fields Checked
The linter only checks fields that are injected into LLM prompts:
agent
background, behaviors, communication_patterns
dynamic_behavior_set
conversation_triggers, actions[*].instruction
context_graph
description, global_* guidelines, states[].
metric
description
persona
background
scenario
objective, instructions
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
v0.3.3 - Recommended Responses for Conversation Testing (January 21, 2026)
Agent Forge v0.3.3 introduces the forge conversation recommend-responses command for generating synthetic user responses during conversation testing. This enables automated testing of agent behavior with configurable personas, temperaments, and scenarios.
Why This Matters: Testing agent conversations previously required manual input or custom scripts. Now you can generate realistic user responses based on personas and scenarios directly from the CLI, enabling systematic testing of edge cases, frustrated users, and various conversation flows.
New Command
forge conversation recommend-responses
Generate synthetic user responses for testing
Example: Basic Usage
Example: With Persona and Scenario
Load personas and scenarios from local entity files or the API:
Example: Configure Temperament and Response Mode
Example: Add Custom Observations
Options Reference
--persona
Load persona by name from local files or API
--persona-name
Custom persona name (overridden by --persona)
--persona-background
Custom persona background
--scenario
Load scenario by name from local files or API
--scenario-name
Custom scenario name
--scenario-objective
Custom scenario objective
--temperament
User temperament: cooperative, neutral, frustrated, confused, skeptical
--mode
Response mode: production, test, edge_cases, exit_conditions
--input-channel
Input channel: text, voice
--observation
Additional observations (repeatable)
--interaction-id
Specific interaction ID (defaults to latest)
--json
Output as JSON
--show-context
Display the context string sent to the API
Temperaments
cooperative
Helpful, clear, engaged user
neutral
Standard responses, neither positive nor negative
frustrated
Impatient, may express dissatisfaction
confused
Uncertain, may ask for clarification
skeptical
Doubtful, questions agent responses
Response Modes
production
Realistic user responses
test
Standard test scenarios
edge_cases
Unusual or boundary condition responses
exit_conditions
Responses that might end the conversation
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
v0.3.2 - Conversation Commands (January 20, 2026)
Agent Forge v0.3.2 introduces the forge conversation command group for fetching and analyzing conversation transcripts directly from the CLI. This enables debugging and feedback processing workflows without leaving the terminal.
Why This Matters: When processing user feedback that includes conversation URLs, developers previously had to navigate the web platform or make direct API calls to understand what happened. Now you can fetch, view, and analyze conversations directly from the CLI, with special support for debugging via the insights command.
New Commands
forge conversation get
Fetch and display conversation messages with rich formatting
forge conversation transcript
Get a plain text transcript of the conversation
forge conversation insights
Debug view with states, dynamic behaviors, and tool calls
forge conversation batch
Process multiple conversations from a file
URL Format Support
The commands accept full conversation URLs in multiple formats:
Example: View Conversation
Example: Debug with Insights
The insights command is powerful for debugging. It shows for each interaction:
State: Which context graph state the agent was in
Dynamic Behaviors: Which dynamic behavior was triggered (if any)
Tool Calls: Which tools were called, their inputs, outputs, and duration
State Transitions: How the agent navigated through the context graph
Example: Batch Processing
Process multiple conversations from a file containing URLs:
Key Features
Rich console output: Messages displayed with timestamps, senders, and proper formatting
Multiple output formats: Human-readable tables, plain text transcripts, or JSON
Flexible filtering: Filter by message type, limit messages, include/exclude thoughts
Batch processing: Process multiple conversations with progress tracking
Debug insights: View context graph states, dynamic behaviors, and tool call details
URL parsing: Automatically extracts org and conversation ID from URLs
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
v0.3.1 - Prompt Log Retrieval (January 20, 2026)
Agent Forge v0.3.1 introduces the forge prompt-log command group for downloading and viewing rendered prompt logs from conversations. This enables debugging and analysis of LLM interactions without leaving the CLI.
Why This Matters: Understanding what prompts were sent to the LLM during a conversation is critical for debugging agent behavior. Previously, accessing prompt logs required navigating the web platform or making direct API calls. Now you can retrieve, view, and download prompt logs directly from the CLI.
30-Day Retention: Prompt logs are only available for conversations within the last 30 days.
New Commands
forge prompt-log types
List all prompt log types with required parameters
forge prompt-log download
Download prompt logs to ZIP file or extracted directory
forge prompt-log show
Display prompt log content directly in terminal
Supported Prompt Types
engage_user
Main conversation prompt
conversation, interaction
dynamic_behavior
Behavior selection prompt
conversation, interaction
reflection
Agent reflection prompt
conversation, interaction, state_transition
action
Action selection prompt
conversation, interaction, state_transition
decision
Decision state prompt
conversation, interaction, state_transition
memory_check
Memory check prompt
conversation, interaction
memory_extract
Memory extraction prompt
conversation, interaction
memory_query
Memory query prompt
conversation, interaction
tool_params
Tool parameter generation
conversation, interaction, state_transition
compute_metrics
Post-session metrics computation
conversation, metric_index
Example: View Prompt for a Conversation
Example: Download Prompts for Analysis
Advanced: Raw Prefix
For advanced users, you can specify a raw S3 prefix directly:
Key Features
Type discovery:
forge prompt-log typesshows all types with required parametersFlexible output: View in terminal, download as ZIP, or extract to directory
Filter options:
--system-onlyor--history-onlyto view specific partsRaw prefix support: Direct S3 prefix for advanced queries
Rate limit aware: Endpoint limited to 5 requests/minute
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
v0.3.0 - Schema Migration System (January 16, 2026)
Agent Forge v0.3.0 introduces a schema migration system for handling entity schema evolution. When local entity JSON files use an older schema format but the Forge code expects the new format, the migration system automatically detects and handles these differences.
Why This Matters: Entity schemas evolve over time as features are added or fields are restructured. Previously, schema mismatches between local files and the current Forge version caused validation errors that required manual intervention. The new migration system provides automated detection, clear visibility into what needs updating, and safe migration with backup options.
New Commands
forge migrate status
Check which files need migration without making changes
forge migrate run
Migrate files to the latest schema version
forge migrate run --apply
Apply migrations (creates .bak backup files)
forge migrate run --apply --no-backup
Apply migrations without creating backups
Checking Migration Status
Running Migrations
Example Migration Output
Automatic Migration During Sync
When running sync-to-local or sync-to-remote commands, the system automatically checks for files needing migration and prompts you:
Affected Existing Commands
forge sync-to-local
Now checks for files needing migration after sync and prompts to apply
forge sync-to-remote
Now checks for files needing migration before sync and prompts to apply
Both sync commands will detect outdated schema versions and prompt you to migrate before proceeding. You can choose to apply migrations immediately or run forge migrate commands separately.
Key Features
Version detection: Automatically detects schema versions using heuristics for files without explicit
schema_versionfields (shown as "v1 (inferred)" in output)Normalization: Files at current version but missing explicit
schema_versionfield are normalizedSafe migrations: Creates
.bakbackup files by default when applying changesSync integration: Automatically prompts during sync commands when migrations are needed
Dry-run by default: All migration commands preview changes before applying
How to Get It
Check out
mainandgit pullto pick up the latest CLI.
v0.2.25 - Dynamic Behaviors as First-Class Assets (January 11, 2026)
Agent Forge v0.2.25 integrates dynamic behaviors into the service-asset hierarchy, providing full CLI discovery and management capabilities for behavioral configurations.
Why This Matters: Previously, dynamic behaviors existed as standalone entities without proper CLI discovery or service integration. Services couldn't display their applied behaviors, and there was no way to manage behavior versions through the CLI. This update brings behaviors to feature parity with other assets (agents, context graphs), enabling consistent management across all service components.
New Asset Discovery Commands
Service Integration
Services now display applied dynamic behaviors:
Version Set Enhancement
Version sets now track behavior configurations:
Key Features
Complete asset parity: Behaviors now have the same discovery and version management as agents and context graphs
Service visibility:
forge service showdisplays all applied behaviors with active/inactive statusVersion control: Behaviors can be versioned with deployments through version sets
Cross-env sync: Proper ID mapping ensures behavior associations are maintained across environments
Type safety: Full pyright compliance with new
applied_behavior_idsfield
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
Related Documentation
Dynamic Behaviors - Service integration with behaviors
Dynamic Behavior Tables - CLI management and data access
v0.2.24 - Service Status Command (January 11, 2026)
Agent Forge v0.2.24 introduces the forge service status command for organization-wide service health monitoring, focusing on active services by default.
Why This Matters: Organizations need to quickly identify configuration issues across their services. The new status command detects version set drift, missing configurations, and unpinned versions. By default, it only shows active services (skipping disabled/archived ones), reducing noise and focusing on what matters.
New Command: forge service status
Detected Issues
Version set drift - Preview and release configurations differ
Missing version sets - Production services missing preview or release
Unpinned versions - Production services with non-edge version sets using
latest
Example Output
Key Features
Active-by-default: Only shows active services unless
--include-inactiveis usedSmart filtering: Combine filters like
--production --issuesto focus on what needs attentionJSON output: Full support for scripting and monitoring integrations
Issue detection: Automatically identifies drift, missing configs, and unpinned versions
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
Related Documentation
Version Sets & Promotion - Updated with service status monitoring
v0.2.23 - JSON Output Consistency (January 11, 2026)
Agent Forge v0.2.23 adds --json output flags to commands that were missing them, ensuring consistent scripting support across all list/show/diff operations.
Why This Matters: CI/CD pipelines and automation scripts need machine-readable output. Previously, some commands like service list and version-set list only had human-readable table output. Now all discovery and comparison commands support --json for consistent scripting.
New --json Flags
forge service list -e <env> --json
List services as JSON array
forge version-set list <service> -e <env> --json
List version sets as JSON array (includes name in each entry)
forge version-set diff <set1> <set2> -s <service> -e <env> --json
Output structured diff with both configs and identical flag
Example: Scripting with JSON Output
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
Related Documentation
Version Sets & Promotion - Updated with JSON output examples
v0.2.22 - Asset List Commands (January 11, 2026)
Agent Forge v0.2.22 adds top-level asset discovery commands, completing the Service → Assets → Version Sets navigation story.
Why This Matters: Previously, users could only discover asset versions if they already knew the asset name. Now you can list all agents and context graphs in an environment, enabling full asset discovery without going through services first.
New Commands
forge asset agent list -e <env>
List all agents with latest version numbers
forge asset context-graph list -e <env>
List all context graphs with latest version numbers
forge asset agent list -e <env> --json
JSON output for scripting
forge asset context-graph list -e <env> --json
JSON output for scripting
Also Added: --json flag to existing version-list commands for consistency:
forge asset agent version-list <agent> -e <env> --jsonforge asset context-graph version-list <cg> -e <env> --json
Example: Complete Asset Discovery Workflow
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
Related Documentation
Asset Discovery - Full asset discovery documentation
v0.2.21 - Quick Rollback Command (January 11, 2026)
Agent Forge v0.2.21 adds a dedicated forge version-set rollback command for quickly reverting release to its previous configuration.
Why This Matters: When a release causes issues, time is critical. Previously, users had to remember the promote release-previous release syntax. Now there's a single, intent-clear command that shows exactly what will change before executing.
New Command
forge version-set rollback -s <service> -e <env>
Preview rollback (dry-run)
forge version-set rollback -s <service> -e <env> --apply
Execute the rollback
Example: Rollback Workflow
Notes
The
release-previousversion set is created automatically when promoting toreleaseIf
release-previousdoesn't exist, the command provides a helpful error messageThe command warns if release and release-previous are identical (nothing to roll back)
Runs mutation validation like other version-set commands
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
Related Documentation
Version Sets & Promotion - Full CLI documentation including rollback
v0.2.20 - Service Discovery CLI (January 11, 2026)
Agent Forge v0.2.20 adds forge service commands for discovering and inspecting services directly from the CLI. This is foundational for the CLI workflow - users can now discover available services before using version-set or asset commands.
Why This Matters: Previously, users had to know service names upfront or run sync-to-local first to see what services existed. Now the CLI is self-discoverable, enabling a complete workflow without leaving the terminal.
New Commands
forge service list -e <env>
List all services with tags and version set counts
forge service list -e <env> --tag <tag>
Filter services by tag (e.g., production, phone)
forge service show <service> -e <env>
Show service details including linked assets
forge service show <service> -e <env> --json
JSON output for scripting
Example: Complete Discovery Workflow
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
Related Documentation
Version Sets & Promotion - Full CLI documentation including service discovery
v0.2.19 - Version Existence Validation (January 11, 2026)
Agent Forge v0.2.19 adds version existence validation to the forge version-set upsert command. When pinning specific agent or context graph versions, the CLI now validates that those versions actually exist before applying the change.
Why This Matters: Previously, users could accidentally pin non-existent versions (e.g., typos like -a 55 instead of -a 5), causing runtime failures when the service was invoked. Now these errors are caught immediately with helpful guidance.
Example: Validation in Action
New Flag: --skip-version-check
For advanced users who need to bypass validation (e.g., in automation scripts where versions may be created in parallel), use the --skip-version-check flag:
Validation Behavior
Explicit versions (-a 5 -g 3)
Validates both versions exist
Only agent version (-a 5)
Validates agent version only
Only context graph version (-g 3)
Validates context graph version only
No versions (unpinned/latest)
Skips validation
--latest flag
Skips validation (resolved versions always exist)
--skip-version-check flag
Skips validation entirely
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
Related Documentation
Version Sets & Promotion - Full CLI documentation including validation rules
v0.2.18 - Asset Version Discovery CLI (January 11, 2026)
Agent Forge v0.2.18 adds forge asset commands for discovering agent and context graph versions. This enables users to see what versions exist before pinning them in version sets.
Why This Matters: Previously, users had to use the API directly or guess version numbers when pinning specific versions in a version set. Now you can easily list all versions with timestamps and details, making version management more discoverable and less error-prone.
New Commands
forge asset agent version-list <agent> -e <env>
List all versions of an agent
forge asset agent version-show <agent> <version> -e <env>
Show details of a specific agent version
forge asset context-graph version-list <cg> -e <env>
List all versions of a context graph
forge asset context-graph version-show <cg> <version> -e <env>
Show details of a specific context graph version
Example: Discover Versions Before Pinning
Additional Features
Look up assets by name or ID (24-character hex)
--jsonflag for machine-readable output--limitflag to control number of versions shown (default: 10)Detailed version-show includes persona info (agents) and state breakdown (context graphs)
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
Related Documentation
Version Sets & Promotion - Full CLI documentation including asset discovery
v0.2.17 - Pre-flight Validation for Version Set CLI (January 11, 2026)
Agent Forge v0.2.17 adds pre-flight validation to version set CLI commands (upsert, promote, delete). Previously, these commands bypassed validation that runs during forge sync-to-remote, allowing invalid configurations to be pushed directly to the remote API.
Why This Matters: Without validation, users could accidentally push non-voice-optimized LLMs to voice services, create unpinned version sets on production services, or violate preset cost tier constraints. Now these issues are caught before any mutation reaches the API.
Validation Rules Enforced
Pinned versions required
Production services
Error if agent/HSM version is null
Cannot delete preview/release
Production services
Error blocks deletion
Preview required for release promotion
Production services
Error if preview doesn't exist
Voice-optimized LLMs only
Voice channels
Error if using GPT-5, Claude, etc.
Empty LLM prefs warning
Voice channels
Warning (non-blocking)
Cost tier constraints
Economy presets
Error if using premium LLMs
Example: Blocked Mutation
Example: Warning (Non-blocking)
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
Related Documentation
Version Sets & Promotion - CLI validation documentation
Channel Tagging - Channel and preset constraints
v0.2.16 - Auto-Backup for Release Promotions (January 10, 2026)
Agent Forge v0.2.16 adds automatic backup when promoting version sets to release, providing a safety net for production deployments without requiring users to remember the --backup flag.
Why This Matters: Previously, users had to explicitly pass --backup to create a rollback point before promoting to release. This was easy to forget, potentially leaving teams without a quick rollback option if issues were discovered after promotion. Now, backup is automatic for the most critical promotion target.
What Changed
--backup flag required for backups
Auto-backup when promoting to release
Easy to forget safety step
Safe by default
N/A
--no-backup flag to skip if needed
New Behavior
When promoting any version set to release, a backup is automatically created as release-previous:
Skip Auto-Backup
Use --no-backup to explicitly skip the automatic backup:
Important Notes
Auto-backup only applies when target is
releasePromoting to other targets (
test,preview, custom) is unchangedIf
releasedoesn't exist yet, no backup is needed (and none is created)The
--backupflag has been removed in favor of--no-backup
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
Related Documentation
Version Sets & Promotion - Updated CLI documentation
v0.2.15 - Audio Filler Delay Validation (January 10, 2026)
Agent Forge v0.2.15 adds validation warnings for audio_filler_triggered_after configurations in Context Graphs and Dynamic Behaviors. The delay value should be as close to zero as possible (e.g., 0.0001) to minimize perceived latency.
Why This Matters: The audio_filler_triggered_after field delays the audio filler from playing until the specified time has elapsed. While this can prevent fillers from playing for very fast operations, any delay adds directly to perceived latency for users. Since most operations complete quickly (short-tail distribution), adding delays hurts the majority of interactions.
Recommended Configuration
< 0.001s (< 1ms)
✅ Good - Effectively zero, no warning
≥ 0.001s (≥ 1ms)
⚠️ Warning - Adds to perceived latency
Example Warning
Best Practice
Set audio_filler_triggered_after to a very small value like 0.0001 (0.1ms). The schema requires > 0, so you cannot use exactly 0, but values below 1ms are effectively instantaneous and won't trigger warnings.
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.Run
forge validate --entity-type context_graph --env <env>to check your configurations.
v0.2.14 - LLM Preferences Validation (January 10, 2026)
Agent Forge v0.2.14 adds comprehensive validation for version set LLM preferences against channel and preset constraints. This ensures your LLM configurations are appropriate for your deployment channel before sync.
Why This Matters: Previously, you could configure GPT-5.1 for a voice service and only discover latency issues in production. Now, the validation system catches misconfigurations early—ensuring voice channels use voice-optimized LLMs (GPT-4.1 series) and that cost tier expectations match your preset.
Validation Hierarchy
Voice channel (phone, web_voice, mobile_voice)
LLMs must be voice-optimized
Voice preset (voice, voice_premium, etc.)
LLMs must be voice-optimized
Economy preset (*_economy)
Premium-tier LLMs not allowed
Premium preset (*_premium)
Economy-only LLMs not allowed
No channel/preset tags
Warning if LLM preferences configured
Voice-Optimized LLMs
Voice channels require low Time-To-First-Token (TTFT) for real-time conversation. Only these LLMs are voice-optimized:
azure_gpt-4.1-2025-04-14
Yes
Standard
azure_gpt-4.1-mini-2025-04-14
Yes
Economy
azure_gpt-5-*
No
Varies
azure_gpt-5.1-*
No
Premium
Cost Tier Classifications
LLMs are classified into cost tiers for validation:
Economy
GPT-5-nano, GPT-4.1-mini, Gemini 2.5 Flash
$0.05-$0.40
Standard
GPT-5-mini, GPT-4.1
$0.25-$2
Premium
GPT-5, GPT-5.1, Claude Sonnet 4.5, Gemini 2.5 Pro
$1.25-$15
Example Validation Output
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
Related Documentation
Channel Tagging System - Updated with LLM validation section
v0.2.13 - Version Set CLI & Environment Tags (January 10, 2026)
Version Set CLI (forge version-set)
Agent Forge v0.2.13 introduces a complete CLI for managing service version sets, enabling the documented developer workflow (personal → test → preview → release) directly from the command line.
Why This Matters: Previously, version set management required direct API calls or manual JSON manipulation. Now you can manage the entire version set lifecycle—creating personal branches, promoting through stages, comparing configurations, and rolling back—using simple CLI commands.
Commands
list
Show all version sets for a service
upsert
Create or update a version set (supports --latest to pin current versions)
promote
Copy configuration from one version set to another (auto-backup when promoting to release)
diff
Compare two version sets side-by-side
show
Display detailed version set configuration
delete
Remove a custom version set
Key Features:
--latestflag: Resolves current agent/context graph versions and pins to actual numbers (required for production validation)Auto-backup: Automatically creates
release-previousbackup when promoting torelease(use--no-backupto skip)Dry-run by default: All mutating commands require
--applyto executeService lookup by name or ID: Use human-readable service names instead of MongoDB ObjectIds
Example Workflow
Example Output
Service Environment Tags
Services can now be tagged as dev or production to enforce different validation rules for version set pinning.
Why This Matters: Production services need stricter controls to prevent accidental deployment of untested configurations. Dev services need flexibility for rapid iteration. The new environment tags let you enforce appropriate guardrails for each.
Environment Tags
dev
No version pinning required. Can push directly to release.
production
Must have preview version set defined. release must match preview. All non-edge version sets must have pinned versions.
Tag Format
Add environment tags to your service alongside channel tags:
Production Validation Rules
When a service is tagged production:
Preview required: A
previewversion set must be definedRelease matches preview:
releaseconfiguration must matchpreviewexactlyVersions pinned: All version sets (except
edge) must have explicit version numbers (nolatest)
Example Validation Error
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
Related Documentation
Version Sets & Promotion - CLI commands and workflow guide
Channel Tagging System - Environment tag configuration
v0.2.12 - Validate Command & Dependency Checking (January 10, 2026)
New forge validate Command
Agent Forge v0.2.12 introduces a new forge validate command that validates local entity data without syncing to remote. This allows you to catch configuration issues early, before they reach your remote environment.
Why This Matters: Previously, validation only occurred during forge sync-to-remote, meaning you had to attempt a sync to discover issues. Now you can validate locally first, catching problems like missing channel tags, invalid presets, or broken references before starting the sync process.
Usage
Key Features:
Validates entities against channel constraints and best practices
Reports errors and warnings without making any changes
Returns non-zero exit code on errors (CI/CD friendly)
Optional
--check-referencesflag fetches remote entities for reference validationOptional
--check-dependenciesflag validates service dependencies against channel constraintsWorks with all entity types: agent, service, context_graph, etc.
Example Output
Service Dependency Validation (--check-dependencies)
The new --check-dependencies flag validates that a service's linked assets (context graphs, dynamic behaviors) are compatible with its channel constraints. This is critical for voice services which have strict latency requirements.
Usage
What Gets Validated
Context graph state count ≤ 5
✓
Warning
No decision/reflection/recall states
✓
Error
No active memory retrieval
✓
Warning
No dynamic behaviors applied
✓
Error
Single-state for ultra-low presets
✓
Error
Example Output
Why This Matters: Voice channels have strict latency requirements that limit what context graphs can do. Previously, you could deploy a voice service with an incompatible context graph and only discover the issue at runtime. Now, --check-dependencies validates these constraints before deployment.
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
Related Documentation
Channel Tagging System - Updated with standalone validation section
Post-Sync Summary
Sync operations now display a summary after completion, showing the count of entities created, updated, and deleted.
Why This Matters: Previously, sync operations completed silently with only individual operation logs. Now you get a clear summary that makes it easy to verify large sync operations completed as expected.
Example Output
This summary appears for both sync-to-remote and sync-to-local operations after successful completion.
v0.2.11 - Flexible Service Tag Format (January 10, 2026)
Agent Forge v0.2.11 simplifies service tag configuration by supporting simple string arrays in local JSON/YAML files, in addition to the existing object format.
Why This Matters: Previously, services required verbose object-format tags ([{"key": "phone", "value": null}]), while agents used simple string arrays (["phone"]). This inconsistency made manual editing error-prone and confusing. Now both formats work for services.
Before (required):
After (recommended):
Or in YAML:
Key Changes:
ServiceLocalSchema.tagsnow acceptsUnion[List[str], List[TagSchema]]New
get_tags_as_strings()helper method for normalized tag accessmap_local_tags_to_create_update_request_tags()handles string, TagSchema, and dict formatsBoth formats are automatically converted to API format during sync
Legacy object format continues to work (backward compatible)
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
Related Documentation
Channel Tagging System - Updated tag format documentation
v0.2.10 - Regional LLM Availability (January 10, 2026)
Agent Forge v0.2.10 introduces region-based LLM availability validation, ensuring that presets are only deployed to regions where their underlying LLMs are available.
Why This Matters: Not all LLMs are deployed in every region. GPT-5.1 is only available in US and EU regions (not CA or AU). Deploying a preset that uses GPT-5.1 to an unsupported region would cause runtime failures. This validation catches these issues before deployment.
LLM Regional Availability
GPT-4.1, GPT-4.1-mini
✓
✓
✓
✓
GPT-5, GPT-5-mini, GPT-5-nano
✓
✓
✓
✓
GPT-5.1
✓
✗
✓
✗
Claude Sonnet 4.5 (Google/AWS)
✓
✓
✓
✓
Gemini 2.5 Pro/Flash
✓
✓
✓
✓
Affected Presets
Presets using GPT-5.1 will fail regional validation in CA and AU regions:
text_premiumasyncasync_premium
CLI Validation
Use the forge channel validate-preset command with the --region flag to check preset compatibility:
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
Related Documentation
Regions & Endpoints - Regional LLM availability details
Channel Tagging System - Preset validation for regions
v0.2.9 - Channel-Based Tagging System (January 10, 2026)
Agent Forge v0.2.9 introduces a channel-based tagging system for configuring services based on deployment channel (voice, text, async) with validation integrated into the sync workflow.
Why This Matters: Different deployment channels have distinct latency requirements, feature constraints, and LLM optimization needs. The channel tagging system enables teams to configure services appropriately for each channel and validate configurations before sync, preventing misconfigurations that could impact user experience.
Supported Channels
phone
voice
Telephony (PSTN/VoIP)
web_voice
voice
Browser WebRTC
mobile_voice
voice
Mobile app voice
sms
text
SMS messaging
whatsapp
text
web_chat
text
Web chat widget
mobile_chat
text
Mobile app chat
email
async
api
async
Direct API
Version Set Presets
Standard
voice (GPT-4.1-mini)
text (GPT-5-mini)
async (GPT-5 + GPT-5.1)
Premium
voice_premium (GPT-4.1)
text_premium (GPT-5.1)
async_premium (GPT-5.1)
Economy
voice_economy (GPT-4.1-mini)
text_economy (GPT-5-nano)
async_economy (GPT-5-nano)
Ultra-Low
voice_ultra_low (GPT-4.1-mini)
—
—
Ultra-Low Premium
voice_ultra_low_premium (GPT-4.1)
—
—
Ultra-Low Latency Presets
The voice_ultra_low and voice_ultra_low_premium presets are designed for single-state context graphs:
All action states must have exactly 1 action
All action states must have 0 exit conditions
Skips
select_next_actionLLM call entirely (backend fast path)Saves 100-500ms latency per turn
Tag Format
Services use tags in key-only format:
Sync Validation Integration
Services with channel tags are validated before syncing to remote
Validates that preset tags match the channel type (e.g., voice presets only for voice channels)
Voice services warn if missing
keyterms(for transcription accuracy)Validation errors block sync, warnings prompt confirmation
New CLI Commands (forge channel)
list-channels
Show all supported channels with profiles
list-presets
Show version set presets with LLM configurations
show-profile <channel>
Show channel profile and constraints
show-tags <channel>
Show tags for a channel/preset combination
validate-preset <preset> <channel>
Validate preset compatibility
validate-context-graph
Validate context graph for channel constraints
llm-info
Show LLM catalog with voice-optimized recommendations
interactions
List backend LLM interaction types
Example Usage
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
Related Documentation
Channel Tagging System - Configuration guide and best practices
v0.2.8 - Role Provisioning CLI (January 9, 2026)
Agent Forge v0.2.8 introduces role provisioning capabilities, enabling organizations to create and manage predefined roles for sandbox and development environments.
Why This Matters: Platform administrators with DefaultAmigoAdministratorRole cannot view client conversations in sandbox environments due to production security restrictions. The new AgentEngineerRole addresses this limitation for development and testing workflows.
New CLI Commands
Predefined Roles
AgentEngineerRole
admin
Sandbox role for agent engineers with platform admin privileges and full org-scoped conversation visibility
DemoProspectRole
client
Restricted role for demo/prospect users with self-scoped permissions and read-only access
AgentEngineerRole vs DefaultAmigoAdministratorRole
The key difference is conversation visibility:
Conversation:GetConversation
Role-restricted (admin roles only)
Org-scoped (all conversations)
Conversation:GetMessage
Role-restricted
Org-scoped
Conversation:GetInteractionInsights
Role-restricted
Org-scoped
User:GetUserModel
Role-restricted
Org-scoped
Usage
To enable AgentEngineerRole for a sandbox environment:
Provision the role:
Assign users to the role via Amigo platform UI:
Navigate to Settings > Users
Select the user
Change their role to
AgentEngineerRole
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
v0.2.7 - Dynamic Behavior Actions Array (January 7, 2026)
Agent Forge v0.2.7 updates the dynamic behavior schema to support multiple actions per behavior, aligning with the backend schema migration where the action field has been renamed to actions and is now an array.
What Changed
The
actionfield inDynamicBehaviorSetVersionhas been renamed toactionsand is now an arrayAdded support for new action types:
inject-instruction(existing) - Injects instruction text into the agent's contextchange-tool-candidates(new) - Modifies available tool candidates with version constraints, audio fillers, and result persistence settings
Uses a discriminated union on the
typefield for type-safe action handling
Schema Changes
The actions array now accepts objects with a type discriminator:
New change-tool-candidates action type (for future use):
Migration Guide
If you have local dynamic behavior YAML files using the old action field:
Re-sync from remote to get the updated schema:
Or manually update your files to use
actions: [...]instead ofaction: {...}
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
v0.2.6 - Continuation Token Fix (December 3, 2025)
Agent Forge v0.2.6 fixes a type mismatch in metric and persona entity pagination response schemas that caused Pydantic validation errors during sync operations for metrics and personas.
What Changed
Changed continuation_token from Optional[str] to Optional[Any] in the following response schemas:
MetricListResponseSchemaPersonaListResponseSchemaPersonaVersionListResponseSchema
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
v0.2.5 - Improved Logline Formatting (December 2, 2025)
Agent Forge v0.2.5 improves logline formatting to provide clearer, more structured log output with consistent timestamp and log level formatting.
What Changed
Loglines now follow a standardized format that is prefixed with the ISO 8601 timestamp in the local timezone.
Example Output
How to Get It
Check out
mainandgit pullto pick up the latest CLI.
v0.2.4 - Null Field Update Fix (November 28, 2025)
Agent Forge v0.2.4 addresses a regression where sync operations for certain context graph, persona, and unit test set silently skipped updates whenever the desired value for a field was null.
What Was Affected
forge sync-to-remotefor context graphs, personas, and unit test set whenever a field needed to be explicitly cleared
How to Get It
Check out
mainand pull the latest changes
Verification Tip
Use forge sync-to-remote --dry-run --entity-type <type> --env <env> to confirm that fields slated to become null now appear in the preview diff before applying changes.
v0.2.3 - Versioned Entity Rollbacks (November 24, 2025)
Bring remote entity histories into your workflow with an interactive rollback command that works for every versioned entity type except tools (agents, context graphs, dynamic behavior sets, personas, and scenarios).
How to Get It
Check out
mainandgit pullto pick up the latest CLI.Run
poetry installto refresh dependencies.
How to Use
What Happens
The CLI fetches remote versions for the target entity and renders them newest-first with relative and absolute timestamps (
✅highlights the current head).You select the desired version; the CLI diff engine compares it against the current remote version and previews the changed fields.
After confirmation, a new version is created on the remote with the selected contents, then synced back to your local workspace. Any existing local changes for that entity will be overwritten without an extra prompt.
Example Session
Why It Matters
Provides a safe, auditable way to recover or inspect prior entity definitions without manual JSON surgery.
Operational Notes
Selecting the current version (empty diff) exits early to avoid no-op rollbacks.
Local sync runs immediately after the remote version is updated; ensure you have no unsaved local edits for that entity before confirming.
v0.2.2 - Automatic Tool Version Deprecation (November 22, 2025)
Agent Forge v0.2.2 introduces automatic tool version management to help maintain optimal performance and simplify version lifecycle management.
What Changed:
When publishing a new tool version with forge action publish, the CLI now automatically:
First checks if 3 or more active tool versions exist
Prompts to deprecate the oldest versions to ensure that there is capacity before attempting to publish the new version
Provides clear visibility into which versions will be deprecated before proceeding
Why This Matters: Maintaining a focused set of active tool versions improves performance, simplifies version management, and encourages best practices for tool lifecycle management. Most teams only need to support the latest versions while maintaining backward compatibility for recent deployments.
How It Works:
Before attempting to publish a new tool version, if 3 or more active versions exist, the CLI will:
Display the total count of active versions
List the oldest versions proposed for deprecation, showing:
Version number
Creation timestamp
Repository and lambda version
Prompt for confirmation (defaults to "Yes")
Deprecate approved versions with individual success/failure reporting
Example Output:
Skipping Auto-Deprecation:
Use the --skip-auto-deprecate flag to bypass the automatic check:
Important Notes:
You can decline the deprecation prompt and manage versions manually
If any deprecations fail, the process aborts and the console will print the commands to manually retry the individual deprecations
Versions are sorted by semantic versioning (major.minor.patch) to ensure oldest versions are deprecated first
Context graphs referencing deprecated versions will experience the following behavior:
Tool-call state: The interaction will error out
Other states: The agent will proceed as if the tool isn't specified
Breaking Change:
The --id parameter is now required for forge action publish (previously optional). This change improves command clarity and prevents accidental publishes to the wrong tool.
Migration Guide:
If you previously relied on interactive prompts for the action ID, update your scripts:
Related Commands:
forge action version delete- Manually deprecate specific tool versions
v0.2.1 - ToolCallState Schema Support (November 20, 2025)
Agent Forge v0.2.1 (PR #133) adds full schema support for the new ToolCallState type in Context Graph definitions, enabling local management and deployment of tool-call states through the Agent Forge CLI.
This release accompanies API v0.6.1. See Amigo API changelog for backend changes.
v0.2.0 - Tool Call Result Persistence (November 13, 2025)
Agent Forge v0.2.0 (PR #132) adds support for the result_persistence field in Context Graph tool call specifications. You can now control tool call result persistence directly in your local JSON files.
Breaking Change: The result_persistence field is now required in all tool call specifications.
TL;DR: Add
"result_persistence": "persisted-preferred"to alltool_call_specsin your Context Graphs. See migration guide below
Use Cases:
General-purpose tools
"persisted-preferred"
Gracefully handles large outputs
Database queries, file reads
"ephemeral"
Results too large to persist efficiently
Critical decision data
"persisted"
Must always be available to agent
Before & After
Before (v0.1.x) - Field optional, defaulted to "persisted":
After (v0.2.0) - Field required:
Where It Applies
The result_persistence field is required in all tool call specifications within Context Graph state definitions. This includes:
ActionState:
action_tool_call_specs[]andexit_condition_tool_call_specs[]DecisionState:
tool_call_specs[]ReflectionState:
tool_call_specs[]
For persistence mode details and character limits, see the Amigo API changelog.
Who This Affects
✅ Requires Action:
Developers creating new Context Graphs
Developers modifying existing Context Graphs
CI/CD pipelines that deploy Context Graph configurations
Teams using
forge sync-to-remoteto push local changes
⚠️ No Action Needed:
Already-deployed agents (backward compatible)
Users only reading Context Graphs
Users syncing from remote to local (remote backfilled automatically)
Migration Guide
Automatic Backfill: The platform automatically backfilled all remote Context Graphs with "result_persistence": "persisted" to maintain backward compatibility. Your local Context Graphs need to be updated to match.
Option 1: Re-sync from Remote (Recommended)
This is the fastest path and ensures your local files match the platform state.
⚠️ Warning: This deletes local Context Graph JSON files. Ensure you've committed or stashed any local modifications first.
Option 2: Manual Update
Update each tool call specification manually if you have extensive local changes:
Open each Context Graph JSON file in
local/*/entity_data/context_graph/Find all tool call specification objects
Add
"result_persistence": "persisted"to each specificationRecommended: Change
"persisted"to"persisted-preferred"for most tools
Validation: After migration, verify your changes:
Troubleshooting
Error: "result_persistence field is required"
Cause: Context Graph definition missing the
result_persistencefieldFix: Follow the migration guide above to add the field
Error: "Field required" when syncing to remote
Cause: Local JSON files haven't been updated with the new field
Fix: Re-sync from remote (Option 1) or manually add the field (Option 2)
Unexpected diffs when running forge sync-to-remote
Cause: Local files still use old schema without
result_persistenceFix: Compare with remote using
git diffafter re-syncing to identify mismatches
Getting 400 errors when deploying Context Graphs
Cause: API now enforces
result_persistenceas requiredFix: Ensure all tool call specs include the field before deployment
Related Resources
Context Graph Best Practices - Usage patterns, examples, and recommendations for
result_persistenceAgent Forge v0.2.0 Release - Full release notes and changes
Agent Forge Repository - SDK documentation and setup instructions
Versioning
The Agent Forge SDK follows Semantic Versioning with the format MAJOR.MINOR.PATCH:
MAJOR version (currently 0): Pre-1.0 indicates active development. Breaking changes may occur between minor versions.
MINOR version: New features, enhancements, or significant changes. May include breaking changes during pre-1.0 development.
PATCH version: Bug fixes, documentation updates, and minor improvements without breaking changes.
Agent Forge SDK
v0.2.x
Early release
Compatible with API v0.6.0+
Last updated
Was this helpful?

