Skip to content

fixed docs, readme and rust sdk #94

Merged
sawradip merged 7 commits into
mainfrom
rad/fix_docs_readme
Nov 14, 2025
Merged

fixed docs, readme and rust sdk #94
sawradip merged 7 commits into
mainfrom
rad/fix_docs_readme

Conversation

@RadeenXALNW
Copy link
Copy Markdown
Collaborator

@RadeenXALNW RadeenXALNW commented Nov 14, 2025

Pushed the latest rust sdk to crates io and update the docs with latest changes and so for readme

Summary by CodeRabbit

  • New Features

    • Added RunAgent Cloud platform documentation with complete deployment guides, authentication setup, and operational workflows
    • Added streaming responses documentation and implementation guide
    • New tutorials for building agents (Book Writer, Lead Scoring, Recipe Creator workflows)
  • Documentation

    • Reorganized documentation structure with dedicated RunAgent Cloud section
    • Enhanced setup authentication flow with Express Setup and Manual Setup options
    • Improved deployment guidance with cloud vs local comparisons and CI/CD integration examples

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Nov 14, 2025

Walkthrough

This PR restructures RunAgent's documentation by moving cloud deployment content to a dedicated RunAgent Cloud section, introduces comprehensive cloud deployment workflows and streaming support documentation, updates configuration schema to include agent_id and auth_settings fields with nested agent_architecture, adds new tutorials, and implements Rust SDK enhancements including TLS support and WebSocket URL alignment.

Changes

Cohort / File(s) Summary
Documentation Link Migration
docs/api-reference/endpoints/health.mdx, docs/configuration/environment.mdx, docs/deployment/local-development.mdx, docs/explanation/production-considerations.mdx, docs/explanation/quickstart-map.mdx, docs/how-to/call-from-*.mdx, docs/how-to/frameworks/*.mdx, docs/how-to/overview.mdx, docs/tutorials/deploy-your-first-agent.mdx, docs/explanation/architecture-overview.mdx, docs/explanation/introduction.mdx
Updated internal documentation links from /deployment/cloud-deployment or /how-to/deployment/cloud-deployment to /runagent-cloud/cloud-deployment and navigation path updates across 20+ files
RunAgent Cloud Section
docs/runagent-cloud/overview.mdx, docs/runagent-cloud/cloud-deployment.mdx
Added new RunAgent Cloud documentation section with overview of serverless infrastructure, VM management, deployment workflows, getting started guide, and comprehensive cloud deployment guide with authentication, CI/CD integration, monitoring, troubleshooting, and security practices
Documentation Structure Reorganization
docs/docs.json, README.md
Restructured documentation navigation: moved cloud-deployment from Deployment group to new RunAgent Cloud tab; updated root README with cloud deployment commands, authentication flow, and action memory section
Tutorial Content Updates
docs/tutorials/overview.mdx, docs/tutorials/book-writer.mdx, docs/tutorials/lead-agent.mdx, docs/tutorials/recipe-creator.mdx
Replaced customer-support, multi-language-wrapper, and internal-qa tutorials with book-writer, lead-agent, and recipe-creator tutorials; updated tutorial overview cards
Removed Tutorials
docs/tutorials/customer-support-agent.mdx, docs/tutorials/internal-qa-agent.mdx, docs/tutorials/multi-language-wrapper.mdx
Deleted three existing tutorial files
Streaming & Installation Documentation
docs/how-to/advanced-tasks.mdx, docs/how-to/advanced/streaming-responses.mdx, docs/explanation/installation.mdx, docs/explanation/overview.mdx, docs/deployment/cloud-deployment.mdx
Added comprehensive streaming responses guide with CLI, SDK examples, best practices; updated installation to "Setup Authentication"; restructured explanation overview with multi-section theory-first layout; updated cloud-deployment documentation with agent configuration, entrypoint management, and validation
Configuration Schema Updates
templates/agno/default/runagent.config.json, examples/lead-agent/lead-score-flow/runagent.config.json, examples/recipe_creator/agents/runagent.config.json
Updated configuration files with new fields: agent_id, env_vars, auth_settings; migrated to ISO 8601 timestamps; changed template_source author from project-specific to "runagent-cli"; adjusted indentation to 2-space format
Example Project Updates: Lead Agent
examples/lead-agent/README.md, examples/lead-agent/backend-rust/src/main.rs, examples/lead-agent/runagent_sdk/rust/src/main.rs
Added comprehensive lead-agent README with architecture, quick start, configuration, and deployment steps; updated Rust backend to new agent_id and improved result parsing with nested payload extraction; updated SDK client to new agent_id and changed local flag from true to false
Example Project Updates: Recipe Creator
examples/recipe_creator/agents/runagent.config.json, examples/recipe_creator/backend/app.py, examples/recipe_creator/sdk/python/test.py
Updated configuration schema; changed agent_id references in backend and test files
Rust SDK & Workspace Updates
runagent-rust/Cargo.toml, runagent-rust/runagent/Cargo.toml, runagent-rust/runagent/README.md, runagent-rust/runagent/src/client/socket_client.rs, test_scripts/rust/test_agno/Cargo.toml, test_scripts/rust/test_agno/src/main.rs
Version bump to 0.1.33; added Rustls TLS support (rustls-tls-native-roots for tokio-tungstenite, rustls-tls for reqwest); updated WebSocket URL from execute/generic to /run-stream; rewrote Rust README with cloud-oriented examples; switched test_agno to streaming path and updated dependencies from local path to crates.io version

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20–30 minutes

  • Attention areas:
    • Configuration schema changes across multiple runagent.config.json files — verify new fields (agent_id, env_vars, auth_settings) are correctly populated and backward compatible
    • WebSocket URL update in socket_client.rs from /execute/generic to /run-stream — ensure alignment with server implementation and CLI expectations
    • Example project agent_id updates (lead-agent backend Rust parsing logic and SDK client) — validate result extraction and local flag semantics
    • Documentation structure reorganization in docs.json and link migrations — confirm all 20+ link targets are accessible and no orphaned references remain
    • Rust TLS feature additions — verify crate compatibility and no breaking changes to existing functionality

Possibly related PRs

  • Added RunAgent Cloud support #79 — Parallel RunAgent Cloud support implementation with overlapping cloud deployment docs, run-stream streaming usage, and Rust client/test updates
  • Some corner cases fixed #83 — Code changes to RunAgentConfig adding agent_id/auth_settings, nested agent_architecture, and run-stream handling directly align with this PR's configuration schema updates
  • Restructured docs to diataxis #72 — Related documentation restructuring and diataxis-style navigation updates affecting same docs files (docs/docs.json, docs/explanation/overview.mdx)

Suggested reviewers

  • sawradip

🐰 Cloud deployment blooms bright,
Agent IDs dance in nested delight,
Streaming flows fast and free,
RunAgent Cloud—where agents should be!

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 50.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main changes: fixes to documentation, README, and Rust SDK, which aligns with the substantial changeset across docs, README files, and Rust SDK components.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch rad/fix_docs_readme

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 8

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (3)
runagent-rust/runagent/src/client/socket_client.rs (1)

57-68: Go SDK uses incompatible URL pattern—breaking change not applied to all SDKs.

The Rust SDK now uses agents/{agent_id}/run-stream with entrypoint_tag sent in the message payload. However, the Go SDK still uses the old pattern agents/{agentID}/execute/{entrypointTag} with entrypoint_tag embedded in the URL path (client.go line 269). The Python and TypeScript SDKs match the new Rust pattern. This inconsistency creates a breaking change for Go users and diverges from the server-side implementation.

Requires: Update the Go SDK to match the new URL format before merging.

examples/recipe_creator/sdk/python/test.py (1)

73-73: Critical: Undefined variables will cause runtime errors.

Lines 73 and 95 reference undefined variables AGENT_ID and LOCAL_MODE. These variables are used in test_quick() and test_vegan() functions but are never defined in the file. Line 117 also references AGENT_ID in validation logic.

Add the missing variable definitions after the imports:

 import os
 
-
-
+# Configuration
+AGENT_ID = "9cd7f85d-248c-4931-831a-5b4d43a01a78"
+LOCAL_MODE = False
 
 print("🧪 Testing ChefGenius Recipe Agent")

Also applies to: 95-95

examples/recipe_creator/backend/app.py (1)

24-31: Hardcoded agent_id in health endpoint doesn't match actual configuration.

The health endpoint returns a hardcoded agent_id (00efd47c-2c3d-492b-97ec-c6b79eeb93c4) that differs from the actual agent IDs used by the RunAgentClient instances. This could mislead health check consumers about which agent is running.

Update the health endpoint to return the actual agent_id:

 @app.route('/health', methods=['GET'])
 def health():
     """Health check endpoint"""
     return jsonify({
         "status": "healthy",
-        "agent_id": "00efd47c-2c3d-492b-97ec-c6b79eeb93c4",
-        "mode": "local"
+        "agent_id": "9cd7f85d-248c-4931-831a-5b4d43a01a78",
+        "mode": "cloud"
     })
🧹 Nitpick comments (9)
examples/lead-agent/backend-rust/src/main.rs (2)

13-13: Consider using environment variable for agent ID.

The hard-coded RUNAGENT_ID may cause issues when deploying to different environments (dev, staging, production). Consider loading it from an environment variable with a fallback:

-const RUNAGENT_ID: &str = "bd87871d-b4c4-4ec1-990b-bef0ea4766f7";
+fn get_agent_id() -> String {
+    std::env::var("RUNAGENT_ID")
+        .unwrap_or_else(|_| "bd87871d-b4c4-4ec1-990b-bef0ea4766f7".to_string())
+}

153-175: Consider extracting result parsing to a helper function.

The nested result parsing logic is robust but complex. Consider extracting it to a helper function for better readability and reusability:

fn extract_result_payload(result: Value) -> Value {
    // Extract payload field if it exists (RunAgent wraps result in {"payload": "...", "type": "object"})
    if let Some(obj) = result.as_object() {
        if let Some(payload_value) = obj.get("payload") {
            if let Some(payload_str) = payload_value.as_str() {
                // Try to parse the payload JSON string
                return serde_json::from_str::<Value>(payload_str).unwrap_or(result);
            }
        } else if let Some(result_str) = result.as_str() {
            // Check if result is a JSON string that needs parsing
            return serde_json::from_str::<Value>(result_str).unwrap_or(result);
        }
    } else if let Some(result_str) = result.as_str() {
        // Result is a string, try to parse it
        return serde_json::from_str::<Value>(result_str).unwrap_or(result);
    }
    result
}

Then use it as:

let final_result = extract_result_payload(result);
Ok(JsonResponse(final_result))
docs/tutorials/book-writer.mdx (1)

88-108: Consider adding env_vars and auth_settings fields.

The configuration example is correct but could include the newly introduced env_vars and auth_settings fields for consistency with other examples in this PR:

{
  "agent_name": "book-writer",
  "description": "AI-powered book writing with multi-agent workflows",
  "framework": "crewai",
  "agent_architecture": {
    "entrypoints": [
      {
        "file": "main.py",
        "module": "generate_outline",
        "tag": "generate_outline"
      },
      {
        "file": "main.py",
        "module": "write_book",
        "tag": "write_book"
      }
    ]
  },
  "env_vars": {},
  "auth_settings": {
    "type": "api_key"
  }
}
templates/agno/default/runagent.config.json (1)

11-11: Absolute path in template_source might be environment-specific.

The path field contains an absolute path /home/azureuser/runagent/templates/agno/default which may not work across different development environments. Consider if this should be a relative path or if it's only used during template initialization.

examples/lead-agent/lead-score-flow/runagent.config.json (1)

8-12: Consider making template_source.path relative or template-agnostic.

Line 11 contains an absolute system path (/home/azureuser/runagent/examples/...) which may not be portable across different development environments. Consider storing this as a relative path or making it environment-independent for better reproducibility.

docs/explanation/overview.mdx (1)

15-17: Markdown formatting improvement needed.

Line 16 contains a <Tip> component that should maintain consistent markdown formatting style. The content is clear but ensure component styling is consistent with other pages in the documentation.

runagent-rust/runagent/README.md (2)

28-42: Standardize dependency version specifications.

Line 33 shows cargo add runagent tokio but the manual Cargo.toml section (lines 37-42) specifies explicit versions. For consistency and clarity, either add versions to the cargo add command or document that the latest versions will be installed.


286-290: Clarify feature documentation.

Lines 287-290 document only the db feature, but the Cargo.toml snippet at lines 36-42 includes serde_json and futures as direct dependencies. Clarify whether these are optional features or core dependencies, and update the documentation accordingly.

README.md (1)

443-454: Consider refining the "Coming Soon" messaging.

The Action Memory System section is marked as "Coming Soon" but provides detailed information about how it "will work." This might create confusion about feature availability. Consider adding a clearer timeline or expected release window if available.

Consider adding a timeline or beta signup option:

 ## 🧠 Action Memory System (Coming Soon)
 
 RunAgent is introducing **Action Memory** - a revolutionary approach to agent reliability that focuses on *how to remember* rather than *what to remember*.
 
+**Expected Release**: Q2 2025 | [Join the Beta Waitlist](#)
+
 ### How It Will Work
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 5ba4497 and 5e1b948.

📒 Files selected for processing (51)
  • README.md (4 hunks)
  • docs/api-reference/endpoints/health.mdx (1 hunks)
  • docs/configuration/environment.mdx (1 hunks)
  • docs/deployment/cloud-deployment.mdx (4 hunks)
  • docs/deployment/local-development.mdx (1 hunks)
  • docs/docs.json (2 hunks)
  • docs/explanation/architecture-overview.mdx (1 hunks)
  • docs/explanation/installation.mdx (1 hunks)
  • docs/explanation/introduction.mdx (4 hunks)
  • docs/explanation/overview.mdx (1 hunks)
  • docs/explanation/production-considerations.mdx (1 hunks)
  • docs/explanation/quickstart-map.mdx (4 hunks)
  • docs/how-to/advanced-tasks.mdx (1 hunks)
  • docs/how-to/advanced/streaming-responses.mdx (1 hunks)
  • docs/how-to/call-from-go.mdx (1 hunks)
  • docs/how-to/call-from-javascript.mdx (1 hunks)
  • docs/how-to/call-from-python.mdx (1 hunks)
  • docs/how-to/call-from-rust.mdx (1 hunks)
  • docs/how-to/frameworks/ag2.mdx (1 hunks)
  • docs/how-to/frameworks/agno.mdx (1 hunks)
  • docs/how-to/frameworks/crewai.mdx (1 hunks)
  • docs/how-to/frameworks/custom.mdx (1 hunks)
  • docs/how-to/frameworks/langgraph.mdx (1 hunks)
  • docs/how-to/frameworks/letta.mdx (1 hunks)
  • docs/how-to/frameworks/llamaindex.mdx (1 hunks)
  • docs/how-to/frameworks/parlant.mdx (1 hunks)
  • docs/how-to/overview.mdx (1 hunks)
  • docs/runagent-cloud/cloud-deployment.mdx (1 hunks)
  • docs/runagent-cloud/overview.mdx (1 hunks)
  • docs/tutorials/book-writer.mdx (1 hunks)
  • docs/tutorials/customer-support-agent.mdx (0 hunks)
  • docs/tutorials/deploy-your-first-agent.mdx (1 hunks)
  • docs/tutorials/internal-qa-agent.mdx (0 hunks)
  • docs/tutorials/lead-agent.mdx (1 hunks)
  • docs/tutorials/multi-language-wrapper.mdx (0 hunks)
  • docs/tutorials/overview.mdx (1 hunks)
  • docs/tutorials/recipe-creator.mdx (1 hunks)
  • examples/lead-agent/README.md (1 hunks)
  • examples/lead-agent/backend-rust/src/main.rs (2 hunks)
  • examples/lead-agent/lead-score-flow/runagent.config.json (1 hunks)
  • examples/lead-agent/runagent_sdk/rust/src/main.rs (2 hunks)
  • examples/recipe_creator/agents/runagent.config.json (1 hunks)
  • examples/recipe_creator/backend/app.py (1 hunks)
  • examples/recipe_creator/sdk/python/test.py (2 hunks)
  • runagent-rust/Cargo.toml (1 hunks)
  • runagent-rust/runagent/Cargo.toml (1 hunks)
  • runagent-rust/runagent/README.md (6 hunks)
  • runagent-rust/runagent/src/client/socket_client.rs (1 hunks)
  • templates/agno/default/runagent.config.json (2 hunks)
  • test_scripts/rust/test_agno/Cargo.toml (1 hunks)
  • test_scripts/rust/test_agno/src/main.rs (1 hunks)
💤 Files with no reviewable changes (3)
  • docs/tutorials/customer-support-agent.mdx
  • docs/tutorials/internal-qa-agent.mdx
  • docs/tutorials/multi-language-wrapper.mdx
🧰 Additional context used
🧬 Code graph analysis (4)
test_scripts/rust/test_agno/src/main.rs (2)
runagent-rust/runagent/src/client/runagent_client.rs (2)
  • agent_id (351-353)
  • new (34-73)
examples/Stockagent/sdk_test/rust/src/main.rs (1)
  • main (6-46)
examples/recipe_creator/sdk/python/test.py (1)
runagent-rust/runagent/src/client/runagent_client.rs (1)
  • agent_id (351-353)
examples/lead-agent/runagent_sdk/rust/src/main.rs (1)
runagent-rust/runagent/src/client/runagent_client.rs (1)
  • agent_id (351-353)
examples/recipe_creator/backend/app.py (1)
runagent-rust/runagent/src/client/runagent_client.rs (2)
  • agent_id (351-353)
  • entrypoint_tag (356-358)
🪛 LanguageTool
docs/tutorials/book-writer.mdx

[grammar] ~15-~15: Use a hyphen to join words.
Context: ... In this tutorial, you'll create a book writing agent that: - Generates comprehe...

(QB_NEW_EN_HYPHEN)


[grammar] ~35-~35: Use a hyphen to join words.
Context: ...tly. ## Architecture Overview The book writing agent uses a multi-agent workflo...

(QB_NEW_EN_HYPHEN)


[grammar] ~67-~67: Use a hyphen to join words.
Context: ...erstanding the Agent Structure The book writing agent uses CrewAI flows with spe...

(QB_NEW_EN_HYPHEN)


[grammar] ~267-~267: Use a hyphen to join words.
Context: ...complished You've built a complete book writing system: ...

(QB_NEW_EN_HYPHEN)

🪛 markdownlint-cli2 (0.18.1)
runagent-rust/runagent/README.md

133-133: Multiple spaces after hash on atx style heading

(MD019, no-multiple-space-atx)

🔇 Additional comments (46)
docs/how-to/frameworks/custom.mdx (1)

530-530: Production Deployment link successfully migrated to RunAgent Cloud.

The update correctly redirects the Production Deployment card to the new RunAgent Cloud documentation path, aligning with the documentation restructuring.

docs/how-to/frameworks/llamaindex.mdx (1)

1077-1077: Production Deployment link updated to RunAgent Cloud.

This update maintains consistency with the documentation restructuring across framework guides.

runagent-rust/runagent/Cargo.toml (1)

3-3: Rust SDK version bump appropriate for patch release.

The version increment from 0.1.32 to 0.1.33 aligns with the PR objective of pushing an updated SDK to crates.io. However, verify that workspace dependencies (tokio-tungstenite, reqwest) include the TLS features mentioned in the AI summary for proper WebSocket and HTTPS support.

docs/how-to/frameworks/agno.mdx (1)

518-518: Production Deployment link updated consistently with other framework guides.

docs/how-to/frameworks/langgraph.mdx (1)

534-534: Production Deployment link migrated to RunAgent Cloud path.

docs/how-to/frameworks/letta.mdx (1)

738-738: Production Deployment link updated to RunAgent Cloud.

docs/tutorials/deploy-your-first-agent.mdx (1)

536-536: Critical tutorial updated with correct production deployment link.

The primary onboarding tutorial now correctly directs users to the RunAgent Cloud deployment guide.

docs/configuration/environment.mdx (1)

297-297: Configuration documentation correctly links to RunAgent Cloud security guidance.

The See Also reference for production security is now properly routed to the RunAgent Cloud deployment guide.

docs/how-to/call-from-rust.mdx (1)

888-888: LGTM! Documentation link updated correctly.

The Production Deployment link has been correctly updated to reflect the new RunAgent Cloud documentation structure.

examples/lead-agent/runagent_sdk/rust/src/main.rs (1)

9-19: Verify the local flag change is intentional.

The local flag has been changed from true to false, which means this example now requires a cloud deployment instead of connecting to a local runagent serve instance. This could impact developers trying to run the example locally for testing.

Ensure this change aligns with the example's purpose. If the example is meant to demonstrate cloud deployment, consider adding a comment explaining this requirement. If it should support local testing, the flag should remain true.

docs/api-reference/endpoints/health.mdx (1)

206-206: LGTM! Documentation link updated correctly.

The monitoring guide link has been correctly updated to reflect the new RunAgent Cloud documentation structure.

docs/explanation/quickstart-map.mdx (1)

48-48: LGTM! All cloud deployment links updated consistently.

All four cloud deployment references have been correctly updated to point to the new RunAgent Cloud documentation structure at /runagent-cloud/cloud-deployment.

Also applies to: 82-82, 151-151, 177-177

docs/how-to/advanced-tasks.mdx (1)

11-14: The streaming responses page exists at the expected location. No issues found.

docs/tutorials/overview.mdx (1)

28-30: No issues found—all referenced tutorial pages exist.

The verification confirms all three tutorial files referenced in the tutorial cards exist in the docs/tutorials directory:

  • lead-agent.mdx
  • book-writer.mdx
  • recipe-creator.mdx

The links are valid and will not result in broken links.

docs/tutorials/lead-agent.mdx (1)

1-308: Verification confirmed: All referenced example files and directory structure exist.

The tutorial accurately references the examples/lead-agent directory. All key files (runagent.config.json, main.py, app.py) and directory structure (lead-score-flow, backend, frontend) are in place. The deployment instructions and code snippets are consistent with the actual repository structure.

docs/how-to/advanced/streaming-responses.mdx (3)

29-44: LGTM: Clear naming convention.

The _stream suffix requirement is well documented and enforced. The examples clearly demonstrate the difference between synchronous and streaming entrypoints.


274-289: LGTM: Configuration example aligns with new schema.

The configuration example correctly uses the nested agent_architecture.entrypoints structure introduced in this PR.


295-358: LGTM: Comprehensive best practices.

The best practices section provides practical guidance on chunk sizing, error handling, and streaming patterns. The code examples are clear and actionable.

runagent-rust/runagent/src/client/socket_client.rs (1)

208-209: LGTM: Test updated correctly.

The test expectation now matches the new URL format. The comment explaining the update is helpful for future maintainers.

docs/tutorials/book-writer.mdx (1)

240-263: LGTM: Clear deployment instructions.

The deployment section provides clear steps for both local and production deployment. The commands align with standard RunAgent CLI usage.

runagent-rust/Cargo.toml (1)

9-9: TLS feature configuration is correct and properly validated.

Verification confirms that rustls-tls-native-roots is a valid feature for tokio-tungstenite 0.21, and the same applies to rustls-tls for reqwest 0.11. The absence of explicit platform-specific TLS code in the codebase is appropriate—the dependencies handle platform abstractions internally, which is the correct design pattern. The configuration works seamlessly across Linux, macOS, and Windows as the native-roots feature automatically integrates with each platform's certificate store.

docs/explanation/installation.mdx (1)

34-56: No issues found—documentation and implementation are aligned.

All verification checks confirm the authentication setup documentation is accurate and fully implemented:

  • runagent setup command exists with both Express (browser/device code) and Manual (API key) options
  • runagent whoami displays current configuration
  • runagent setup --again flag enables reconfiguration
  • ✓ Device code authentication flow is implemented and functional for Express Setup
  • ✓ Manual setup prompts for API key entry with validation and secure credential storage
examples/lead-agent/README.md (1)

320-328: Fix broken deployment documentation link.

Line 325 references /runagent-cloud/cloud-deployment in a code comment but this should be verified as a valid path in the new documentation structure. However, based on the context from other files in this PR, this appears correct and aligns with the documentation reorganization.

docs/deployment/cloud-deployment.mdx (2)

134-244: Configuration documentation is comprehensive and well-organized.

The Agent Configuration section provides clear guidance on agent_id, entrypoints, and manual editing workflows. The examples are accurate and align with the new configuration schema.


314-329: Streaming execution documentation is clear and helpful.

The Note at lines 326-328 appropriately emphasizes using run-stream for streaming endpoints with WebSocket connections. This is an important distinction that helps prevent user confusion.

docs/explanation/introduction.mdx (2)

99-131: Configuration schema documentation is accurate and complete.

The runagent.config.json example properly shows all required fields including agent_id, agent_architecture with entrypoints, auth_settings, and env_vars. The Key fields note at lines 133-139 helps clarify important concepts.


434-450: Streaming setup documentation properly conveys auto-generated configuration.

The explanation that runagent init automatically creates both streaming and non-streaming functions, with the streaming function already configured, is helpful and accurate. The note about the _stream suffix requirement is important and well-placed.

runagent-rust/runagent/README.md (1)

301-323: API Reference is comprehensive and accurate.

The method signatures and descriptions for RunAgentClient clearly document all main entry points including streaming variants and helper methods. The documentation properly distinguishes between positional and keyword arguments.

docs/how-to/frameworks/parlant.mdx (1)

1047-1052: Documentation links are properly updated and Next Steps are comprehensive.

Line 1050 correctly references /runagent-cloud/cloud-deployment which aligns with the documentation reorganization. The Next Steps section provides a good progression of advanced topics.

docs/deployment/local-development.mdx (1)

371-374: Deployment documentation link properly updated.

Line 373 correctly updates the See Also link to point to /runagent-cloud/cloud-deployment, maintaining consistency with the documentation reorganization across the PR.

docs/explanation/architecture-overview.mdx (1)

485-485: Navigation link updated to reflect new documentation structure.

The deployment card now correctly points to the relocated RunAgent Cloud documentation. This change aligns with the documentation reorganization introduced in this PR.

docs/how-to/frameworks/ag2.mdx (1)

731-731: Navigation link updated consistently with documentation restructuring.

The Production Deployment card reference has been updated to point to the new RunAgent Cloud deployment documentation path, maintaining consistency across the documentation.

docs/explanation/production-considerations.mdx (1)

633-633: Navigation target updated to reflect new documentation hierarchy.

The Cloud Deployment card now routes to the new RunAgent Cloud section, consistent with the documentation restructuring applied across the repository.

docs/how-to/call-from-javascript.mdx (1)

711-711: Next Steps navigation link updated to new documentation path.

The Production Deployment card link has been updated to point to the new RunAgent Cloud deployment guide, maintaining consistency with other SDK documentation guides.

docs/how-to/call-from-python.mdx (1)

582-582: Navigation link aligned with new documentation structure.

The Production Deployment card href has been updated to the new RunAgent Cloud path, maintaining consistency with the documentation reorganization across all SDK guides.

docs/how-to/call-from-go.mdx (1)

1173-1173: Next Steps reference updated to match new documentation organization.

The Production Deployment link has been updated to the new RunAgent Cloud path, maintaining consistency with the Python and JavaScript SDK documentation updates.

docs/docs.json (1)

96-96: Documentation structure reorganized with new RunAgent Cloud tab.

The changes implement a clean separation by moving cloud deployment guidance to a dedicated "RunAgent Cloud" tab, while keeping local development under the "How-to Guides" section. Verification confirms both new documentation files exist:

  • docs/runagent-cloud/overview.mdx
  • docs/runagent-cloud/cloud-deployment.mdx
docs/how-to/overview.mdx (1)

36-37: Both navigation paths are valid and reference existing documentation files.

The changes have been verified:

  • /deployment/local-developmentdocs/deployment/local-development.mdx
  • /runagent-cloud/cloud-deploymentdocs/runagent-cloud/cloud-deployment.mdx

Both files exist at their target locations. The path updates from relative (./ prefixed) to absolute paths are intentional restructuring aligned with the documentation organization.

docs/how-to/frameworks/crewai.mdx (1)

571-571: LGTM!

The documentation link has been correctly updated to reflect the new RunAgent Cloud documentation structure.

examples/recipe_creator/agents/runagent.config.json (1)

1-33: Configuration updated to new schema structure.

The configuration has been updated to include the new agent_architecture.entrypoints structure, agent_id, env_vars, and auth_settings fields. The structure aligns with the configuration examples in the cloud deployment documentation.

Note: The agent_id here (9cd7f85d-248c-4931-831a-5b4d43a01a78) should be used consistently across all related files in the recipe_creator example.

docs/runagent-cloud/cloud-deployment.mdx (1)

1-625: Comprehensive cloud deployment documentation.

Excellent and thorough cloud deployment guide that covers:

  • Authentication setup with API keys
  • Two deployment methods (quick deploy vs two-step)
  • Agent configuration with agent_id and entrypoints
  • Validation requirements and checks
  • Running agents with streaming support
  • CI/CD integration examples
  • Troubleshooting and best practices
  • Security considerations

The documentation is well-organized with clear examples and covers both beginner and advanced use cases.

docs/tutorials/recipe-creator.mdx (1)

1-392: Excellent comprehensive tutorial for the Recipe Creator Agent.

This tutorial effectively demonstrates:

  • Real-world agent architecture with multiple entrypoints
  • Synchronous and streaming patterns
  • Backend integration with Flask
  • Frontend integration concepts
  • Local and production deployment workflows

The tutorial provides a complete learning path from understanding the challenge to deploying a production system. The code examples are clear and well-commented.

README.md (3)

101-103: Good clarification of local development vs deployment.

Renaming "Local Deployment" to "Local Development" and emphasizing that it's for testing before deploying to RunAgent Cloud provides better clarity on the intended workflow.


118-131: Clear cloud deployment workflow added.

The new "Deploy to RunAgent Cloud" section provides a straightforward path for users to move from local development to production. The authentication and deployment commands are clear and concise.


351-430: Comprehensive cloud deployment marketing section.

The RunAgent Cloud Deployment section effectively communicates:

  • Cloud availability and benefits
  • Sign-up and dashboard links
  • Deployment speed and VM image management
  • Security architecture
  • Dashboard features and monitoring capabilities
  • Enterprise-grade features

This provides a strong value proposition for the cloud platform while maintaining technical accuracy.

docs/runagent-cloud/overview.mdx (1)

1-166: Fragment link verified as valid.

The section "## Authentication Setup" exists at line 16 in cloud-deployment.mdx, which correctly corresponds to the fragment anchor #authentication-setup. The link on line 107 is correct and will resolve properly.

Comment on lines +214 to +239
### Rust SDK

```rust
use runagent::client::RunAgentClient;
use serde_json::json;
use futures::StreamExt;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = RunAgentClient::new(
"your_agent_id",
"chat_stream", // Must end with _stream
false
).await?;

let mut stream = client.run_stream(&[
("message", json!("Tell me a story"))
]).await?;

while let Some(chunk) = stream.next().await {
print!("{}", chunk?);
}

Ok(())
}
```
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

Verify Rust SDK API matches documentation.

The Rust SDK example should align with the actual implementation. Based on the socket_client.rs changes in this PR, verify that:

  1. RunAgentClient::new signature matches (agent_id, entrypoint_tag, local)
  2. run_stream parameter format is correct
  3. The stream output format matches what's documented

🏁 Script executed:

#!/bin/bash
# Verify Rust SDK API signatures
ast-grep --pattern $'impl RunAgentClient {
  $$$
  pub async fn new($$$) -> $_ {
    $$$
  }
  $$$
}'

ast-grep --pattern $'pub async fn run_stream($$$) -> $_ {
  $$$
}'

Length of output: 42888


Fix stream output handling in Rust SDK example.

The run_stream API signature and parameter format are correct, but the example code has incomplete stream chunk handling. Each chunk from stream.next().await is a RunAgentResult<Value> (a Result type), so it requires proper string conversion:

while let Some(chunk) = stream.next().await {
    print!("{}", chunk?.to_string());  // or use serde_json::to_string for JSON output
}

Without .to_string(), printing a Value directly won't display properly.

🤖 Prompt for AI Agents
In docs/how-to/advanced/streaming-responses.mdx around lines 214 to 239, the
Rust example prints a serde_json::Value result directly from the stream
(print!("{}", chunk?);) which will not render properly; update the loop to
convert the Value into a string before printing — e.g., replace the print call
with one that uses chunk?.to_string() or serde_json::to_string(&chunk?) to
serialize the JSON value to a string (keeping the existing ? error propagation).

agent_id,
"lead_score_flow", // entrypoint_tag
true, // local = true
false, // local = true
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix misleading comment.

The comment says local = true but the code sets it to false. This inconsistency can confuse developers.

Apply this diff to fix the comment:

-        false,  // local = true
+        false,  // local = false (connects to cloud deployment)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
false, // local = true
false, // local = false (connects to cloud deployment)
🤖 Prompt for AI Agents
In examples/lead-agent/runagent_sdk/rust/src/main.rs around line 18, the inline
comment incorrectly reads "local = true" while the code sets the value to false;
update that comment to "local = false" (or remove the comment) so it accurately
reflects the boolean value.

# Initialize RunAgent client
recipe_client = RunAgentClient(
agent_id="6f15f51e-0b6e-479a-ae8c-8174db2712fd",
agent_id="7cd7f85d-248c-4931-831a-5b4d43a01a78",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Agent ID mismatch between backend and test files.

The agent_id used here (7cd7f85d-248c-4931-831a-5b4d43a01a78) differs from the agent_id in examples/recipe_creator/sdk/python/test.py (9cd7f85d-248c-4931-831a-5b4d43a01a78) and examples/recipe_creator/agents/runagent.config.json. This inconsistency will cause the test file to fail when attempting to connect to the backend.

Update the agent_id to match the configuration:

 recipe_client = RunAgentClient(
-    agent_id="7cd7f85d-248c-4931-831a-5b4d43a01a78",
+    agent_id="9cd7f85d-248c-4931-831a-5b4d43a01a78",
     entrypoint_tag="recipe_create",
     local=False
 )
 
 stream_client = RunAgentClient(
-    agent_id="7cd7f85d-248c-4931-831a-5b4d43a01a78",
+    agent_id="9cd7f85d-248c-4931-831a-5b4d43a01a78",
     entrypoint_tag="recipe_stream",
     local=False
 )

Also applies to: 18-18

🤖 Prompt for AI Agents
In examples/recipe_creator/backend/app.py around lines 12 and 18, the agent_id
values do not match the agent_id used in
examples/recipe_creator/sdk/python/test.py and
examples/recipe_creator/agents/runagent.config.json; update the agent_id strings
at both line 12 and line 18 to the canonical value used in the tests/config
(9cd7f85d-248c-4931-831a-5b4d43a01a78) so backend, SDK test, and agent config
are identical.


client = RunAgentClient(
agent_id="76aef000-0000-0000-0000-000000000000",
agent_id="9cd7f85d-248c-4931-831a-5b4d43a01a78",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Verify agent_id consistency across the example.

The agent_id 9cd7f85d-248c-4931-831a-5b4d43a01a78 should match the configuration in examples/recipe_creator/agents/runagent.config.json and the backend implementation in examples/recipe_creator/backend/app.py.

Also applies to: 50-50


🏁 Script executed:

#!/bin/bash
# Verify agent_id consistency across recipe_creator example files

echo "=== Checking agent_id in runagent.config.json ==="
cat examples/recipe_creator/agents/runagent.config.json | jq -r '.agent_id'

echo -e "\n=== Checking agent_id in backend/app.py ==="
rg -n 'agent_id=' examples/recipe_creator/backend/app.py

echo -e "\n=== Checking agent_id in sdk/python/test.py ==="
rg -n 'agent_id=' examples/recipe_creator/sdk/python/test.py

Length of output: 472


I found a critical inconsistency. Let me verify the AGENT_ID definition and backend context:


🏁 Script executed:

#!/bin/bash
# Find AGENT_ID definition in test.py and verify backend context

echo "=== Checking AGENT_ID definition in sdk/python/test.py ==="
head -30 examples/recipe_creator/sdk/python/test.py | grep -n "AGENT_ID"

echo -e "\n=== Full context around agent_id in backend/app.py ==="
sed -n '10,20p' examples/recipe_creator/backend/app.py

echo -e "\n=== Checking if there's an environment variable or config for AGENT_ID ==="
grep -r "AGENT_ID" examples/recipe_creator/ --include="*.py" --include="*.json" 2>/dev/null | head -20

Length of output: 374


Let me fix that by running the verification with repository access:


🏁 Script executed:

#!/bin/bash
# Find AGENT_ID definition in test.py and verify backend context

echo "=== Checking AGENT_ID definition in sdk/python/test.py ==="
head -30 examples/recipe_creator/sdk/python/test.py | grep -n "AGENT_ID"

echo -e "\n=== Full context around agent_id in backend/app.py ==="
sed -n '10,20p' examples/recipe_creator/backend/app.py

echo -e "\n=== Checking if there's an environment variable or config for AGENT_ID ==="
grep -r "AGENT_ID" examples/recipe_creator/ --include="*.py" --include="*.json" 2>/dev/null | head -20

Length of output: 912


Let me check the full imports and where AGENT_ID comes from in test.py:


🏁 Script executed:

#!/bin/bash
# Check imports and AGENT_ID source in test.py

echo "=== First 50 lines of sdk/python/test.py to find imports ==="
head -50 examples/recipe_creator/sdk/python/test.py

echo -e "\n=== Verify all agent_id values in the files ==="
echo "Config file agent_id:"
grep -o '"agent_id":"[^"]*"' examples/recipe_creator/agents/runagent.config.json

echo -e "\nBackend app.py agent_id values:"
grep -o 'agent_id="[^"]*"' examples/recipe_creator/backend/app.py | sort | uniq

Length of output: 1309


Fix backend agent_id mismatch in examples/recipe_creator/backend/app.py.

The test file (lines 24, 50) correctly uses 9cd7f85d-248c-4931-831a-5b4d43a01a78 matching runagent.config.json. However, backend/app.py (lines 12, 18) uses a different agent_id 7cd7f85d-248c-4931-831a-5b4d43a01a78, causing the backend to fail when called from tests. Update backend/app.py lines 12 and 18 to use the correct agent_id: 9cd7f85d-248c-4931-831a-5b4d43a01a78.

🤖 Prompt for AI Agents
In examples/recipe_creator/backend/app.py around lines 12 and 18, the hard-coded
agent_id is incorrect (uses 7cd7f85d-248c-4931-831a-5b4d43a01a78); update both
occurrences to match the test and runagent.config.json agent_id
9cd7f85d-248c-4931-831a-5b4d43a01a78 so the backend matches the test harness.


while let Some(chunk_result) = stream.next().await {
match chunk_result {
Ok(chunk) => println!("{}", chunk),
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix markdown formatting: multiple spaces after heading.

Line 133 contains multiple spaces after the ## heading hash. Use single space for consistent markdown formatting.

-##  Features
+## Features

Committable suggestion skipped: line range outside the PR's diff.

🧰 Tools
🪛 markdownlint-cli2 (0.18.1)

133-133: Multiple spaces after hash on atx style heading

(MD019, no-multiple-space-atx)

🤖 Prompt for AI Agents
In runagent-rust/runagent/README.md around line 133, the Markdown heading uses
multiple spaces after the '##' hash; change it to a single space (e.g., '##
Heading') to normalize heading formatting and ensure consistent Markdown
rendering.

Comment on lines +27 to +31
"env_vars": {},
"agent_id": "ac29bd73-b3d3-42c8-a98f-5d7aec7ee919",
"auth_settings": {
"type": "api_key"
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

Verify new configuration fields are documented.

The addition of env_vars and auth_settings fields represents a schema evolution. Verify that:

  1. These fields are documented in the configuration schema docs
  2. The auth_settings.type values and options are documented
  3. Existing agents won't break if these fields are missing (backward compatibility)

🏁 Script executed:

#!/bin/bash
# Check if new fields are documented
rg -nP 'env_vars|auth_settings' docs/ -A 3 -B 3

# Check schema validation for these fields
rg -nP '(env_vars|auth_settings).*schema|validate.*config' --type=py

Length of output: 6562


[/run_scripts]


🏁 Script executed:

#!/bin/bash
# Check for auth_settings type options in docs
rg -nP 'auth_settings.*type|type.*auth' docs/ -A 2 -B 2

# Check schema for field requirements
rg -nP '(required|optional).*auth_settings|env_vars' --type=py -A 2 -B 2

# Look for backward compatibility handling
rg -nP 'auth_settings|env_vars' runagent/sdk/config.py -A 5 -B 5

Length of output: 10707


[/run_scripts]


🏁 Script executed:

#!/bin/bash
# Find auth_settings field definition in schema
rg -nP 'auth_settings' runagent/utils/schema.py -A 3 -B 1

# Find all auth_settings type assignments to identify valid values
rg -nP '"type"\s*:\s*"(none|api_key|[^"]*)"' --type=json --type=py -B 2 -A 1 | head -50

# Check if auth_settings has validation or schema constraints
rg -nP 'class.*Config|auth_settings|AuthSettings' runagent/ --type=py -A 2 -B 1 | grep -A 5 -B 5 auth_settings | head -60

Length of output: 6104


[/run_scripts]


🏁 Script executed:

#!/bin/bash
# Find auth_type variable assignments and validation
rg -nP 'auth_type\s*=' runagent/cli/commands/ -B 2 -A 2

# Check for auth validation or allowed types
rg -nP '(none|api_key|oauth|jwt)' runagent/ --type=py -C 1 | grep -i auth | head -40

# Get the full template file context
cat templates/agno/default/runagent.config.json

Length of output: 4947


Documentation for auth_settings.type values is incomplete.

While env_vars and auth_settings fields are documented, the valid values for auth_settings.type are not enumerated. The docs show "type": "none" as a default but don't indicate that "api_key" is also supported (as shown in the template).

Add to docs/configuration/config-file.mdx or docs/explanation/introduction.mdx:

  • List supported auth_settings.type values: "none" and "api_key"
  • Document each type's configuration requirements

Backward compatibility is maintained (both fields are Optional with sensible defaults).

🤖 Prompt for AI Agents
In templates/agno/default/runagent.config.json around lines 27 to 31, the
documentation is missing an enumeration and explanation of valid
auth_settings.type values; update docs/configuration/config-file.mdx (or
docs/explanation/introduction.mdx) to list supported values "none" and "api_key"
and describe each type's configuration requirements (e.g., "none" requires no
credentials; "api_key" requires an env var or config key for the API key and how
to supply it), mark both fields optional with their sensible defaults, and add a
short example snippet and note about backward compatibility.

Comment on lines +7 to +8
# RunAgent Rust SDK from crates.io
runagent = "0.1.33"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Good update to use the published crates.io version.

The dependency has been correctly updated to use the published RunAgent SDK from crates.io.

Verify that version 0.1.33 is the latest published version on crates.io:


🌐 Web query:

What is the latest version of the runagent crate on crates.io?

💡 Result:

The latest version on crates.io is 0.1.1. [1]

Sources:
[1] docs.rs runagent (crate page showing runagent 0.1.1).


Fix invalid dependency version: runagent 0.1.33 does not exist on crates.io.

The latest version of the runagent crate on crates.io is 0.1.1, but the Cargo.toml specifies version 0.1.33, which will cause a build failure. Update the dependency to the correct version:

runagent = "0.1.1"
🤖 Prompt for AI Agents
In test_scripts/rust/test_agno/Cargo.toml around lines 7 to 8, the dependency
version for runagent is incorrect (0.1.33 does not exist); change the version to
the correct published release by updating the runagent entry to "0.1.1" so Cargo
can resolve and build the crate.

// let agent_id = "f9415c35-6c01-4f76-a9d5-ef2e11c08cbb";
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let agent_id = "ac29ba73-b3d3-42c8-a98f-5d7aec7ee919";
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Fix agent ID typo.

The agent ID appears to have a typo: ac29ba73 should be ac29bd73 based on the configuration in templates/agno/default/runagent.config.json (line 28). This mismatch will cause the test to fail when connecting to the agent.

-    let agent_id = "ac29ba73-b3d3-42c8-a98f-5d7aec7ee919";
+    let agent_id = "ac29bd73-b3d3-42c8-a98f-5d7aec7ee919";
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
let agent_id = "ac29ba73-b3d3-42c8-a98f-5d7aec7ee919";
let agent_id = "ac29bd73-b3d3-42c8-a98f-5d7aec7ee919";
🤖 Prompt for AI Agents
In test_scripts/rust/test_agno/src/main.rs around line 48, the hard-coded
agent_id has a typo ("ac29ba73...") that doesn't match
templates/agno/default/runagent.config.json (should be "ac29bd73..."); update
the agent_id string to exactly match the configured agent ID (replace "ac29ba73"
with "ac29bd73") so the test connects to the correct agent.

@sawradip sawradip merged commit 822fd2b into main Nov 14, 2025
2 checks passed
@coderabbitai coderabbitai Bot mentioned this pull request Dec 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants