Skip to content

Conversation

@aleskalfas
Copy link
Contributor

Linked Issues

#2008

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @aleskalfas, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly expands the existing examples and end-to-end test coverage for agent integration features. It introduces new examples demonstrating how to configure agent details, manage settings, interact with a canvas, handle citations, utilize environment variables, implement various error reporting mechanisms, process files, create dynamic forms, access LLM services via a proxy, integrate with MCP (including OAuth), build RAG agents, manage secrets, and visualize agent trajectories. These additions are complemented by updated documentation to guide users through these new capabilities, enhancing the overall developer experience and ensuring the robustness of the agent framework.

Highlights

  • New E2E Tests for Agent Integrations: Added a comprehensive suite of end-to-end tests covering various agent integration features, including agent details, settings, canvas, citations, environment variables, error handling, file processing, forms, LLM proxy, MCP, RAG, secrets, and trajectory.
  • Documentation Updates: Updated the agent integration documentation to embed the newly added examples, providing clearer and more practical guidance for developers.
  • Example Project Configuration: Introduced new example project structures with pyproject.toml and src directories for each new integration, along with updated VS Code launch configurations for easier development and testing.
  • Dependency Management: Updated the agentstack-sdk dependency in example pyproject.toml files to use a minimum version (>=0.5.3) and added tool.pyright configuration for improved type checking.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • apps/agentstack-server/tests/e2e/examples/agent-integration/agent-details/test_basic_configuration.py
    • Added a new e2e test for basic agent detail configuration, verifying agent name, skills, and extension parameters.
  • apps/agentstack-server/tests/e2e/examples/agent-integration/agent-settings/test_basic_settings.py
    • Added a new e2e test for basic agent settings, checking agent responses based on enabled/disabled thinking mode.
  • apps/agentstack-server/tests/e2e/examples/agent-integration/canvas/test_canvas_with_llm.py
    • Added a new e2e test for canvas integration with LLM, verifying artifact generation and updates via canvas edits.
  • apps/agentstack-server/tests/e2e/examples/agent-integration/citations/test_citation_basic_usage.py
    • Added a new e2e test for basic citation usage, asserting response text and citation metadata.
  • apps/agentstack-server/tests/e2e/examples/agent-integration/env-variables/test_basic_environment_variables.py
    • Added a new e2e test for basic environment variable handling, checking agent responses based on default env var values.
  • apps/agentstack-server/tests/e2e/examples/agent-integration/error/test_adding_error_context.py
    • Added a new e2e test for adding error context, verifying context and stack trace inclusion in error metadata.
  • apps/agentstack-server/tests/e2e/examples/agent-integration/error/test_advanced_error_reporting.py
    • Added a new e2e test for advanced error reporting, confirming stack trace inclusion in error messages and metadata.
  • apps/agentstack-server/tests/e2e/examples/agent-integration/error/test_multiple_errors_handling.py
    • Added a new e2e test for handling multiple errors, verifying the reporting of multiple errors from an ExceptionGroup.
  • apps/agentstack-server/tests/e2e/examples/agent-integration/error/test_standard_error_reporting.py
    • Added a new e2e test for standard error reporting, asserting task failure and error message content.
  • apps/agentstack-server/tests/e2e/examples/agent-integration/files/test_file_processing.py
    • Added a new e2e test for file processing, verifying agent's ability to process and return uploaded files.
  • apps/agentstack-server/tests/e2e/examples/agent-integration/forms/test_dynamic_form_requests.py
    • Added a new e2e test for dynamic form requests, checking agent's ability to request and process submitted form data.
  • apps/agentstack-server/tests/e2e/examples/agent-integration/llm-proxy-service/test_llm_access.py
    • Added a new e2e test for LLM access via proxy service, verifying agent receives and uses LLM configuration.
  • apps/agentstack-server/tests/e2e/examples/agent-integration/mcp/test_custom_mcp_client_with_oauth.py
    • Added a new e2e test for custom MCP client with OAuth, verifying agent authentication and tool calls.
  • apps/agentstack-server/tests/e2e/examples/agent-integration/mcp/test_github_mcp_agent.py
    • Added a new e2e test for GitHub MCP agent, verifying agent's ability to call the 'get_me' tool and return results.
  • apps/agentstack-server/tests/e2e/examples/agent-integration/rag/test_conversation_rag_agent.py
    • Added a new e2e test for conversational RAG agent, verifying file processing and query answering using previously processed files.
  • apps/agentstack-server/tests/e2e/examples/agent-integration/rag/test_simple_rag_agent.py
    • Added a new e2e test for simple RAG agent, verifying file processing and search results.
  • apps/agentstack-server/tests/e2e/examples/agent-integration/rag/zorblax_spec.md
    • Added a new markdown file containing a detailed specification for the 'Zorblax Engine' to be used in RAG examples.
  • apps/agentstack-server/tests/e2e/examples/agent-integration/secrets/test_basic_secrets.py
    • Added a new e2e test for basic secrets management, verifying agent's use of provided secrets and handling of missing secrets.
  • apps/agentstack-server/tests/e2e/examples/agent-integration/tool-calls/test_basic_approve.py
    • Added a new e2e test for basic tool call approval, verifying agent behavior when tool calls are approved or rejected.
  • apps/agentstack-server/tests/e2e/examples/agent-integration/trajectory/test_trajectory_basic_usage.py
    • Added a new e2e test for basic trajectory usage, verifying agent yields trajectory steps and a final response.
  • apps/agentstack-server/tests/e2e/examples/conftest.py
    • Updated the RunningExample NamedTuple to include agent_card for better context in tests.
    • Added comments to the run_example function for improved clarity on setup steps.
  • docs/development/agent-integration/agent-details.mdx
    • Updated the agent example code for basic configuration and added an embedme comment to link to the new example file.
  • docs/development/agent-integration/canvas.mdx
    • Added an embedme comment to link to the new canvas with LLM example file.
  • docs/development/agent-integration/citations.mdx
    • Updated the agent example code for basic citation usage and added an embedme comment to link to the new example file.
  • docs/development/agent-integration/env-variables.mdx
    • Updated the agent example code for environment variables and added an embedme comment to link to the new example file.
  • docs/development/agent-integration/error.mdx
    • Updated agent example code for standard, advanced, multiple, and context-adding error reporting, and added embedme comments to link to the new example files.
  • docs/development/agent-integration/files.mdx
    • Updated the agent example code for file processing and added an embedme comment to link to the new example file.
  • docs/development/agent-integration/forms.mdx
    • Updated the agent example code for dynamic form requests and added an embedme comment to link to the new example file.
  • docs/development/agent-integration/llm-proxy-service.mdx
    • Updated the agent example code for LLM access and added an embedme comment to link to the new example file.
  • docs/development/agent-integration/mcp.mdx
    • Updated agent example code for GitHub MCP agent and custom MCP client with OAuth, and added embedme comments to link to the new example files.
    • Modified session.initialize() call to assign its result to _.
  • docs/development/agent-integration/rag.mdx
    • Updated RAG agent example code for simple and conversational RAG, and added embedme comments to link to the new example files and their sub-modules.
    • Adjusted the output format for RAG results to remove triple backticks.
  • docs/development/agent-integration/secrets.mdx
    • Updated the agent example code for basic secrets and added an embedme comment to link to the new example file.
    • Added a try-except ValueError block when requesting secrets to handle cases where the user might not provide the secret.
  • docs/development/agent-integration/tool-calls.mdx
    • Updated the agent example code for basic tool call approval and added an embedme comment to link to the new example file.
    • Corrected type hint for tool parameter in handler function from Tool to AnyTool.
    • Added pyright: ignore[reportArgumentType] to ToolCallApprovalRequest.from_mcp_tool call.
  • docs/development/agent-integration/trajectory.mdx
    • Updated the agent example code for basic trajectory usage and added an embedme comment to link to the new example file.
  • examples/.template/example/pyproject.toml
    • Updated the agentstack-sdk dependency to >=0.5.3 to allow for broader version compatibility.
    • Added tool.pyright configuration for consistent type checking across examples.
  • examples/.vscode/launch.json
    • Added numerous new launch configurations for various agent integration examples, facilitating easier debugging and execution.
  • examples/agent-integration/agent-details/basic-configuration/pyproject.toml
    • Added a new pyproject.toml file for the basic agent configuration example.
  • examples/agent-integration/agent-details/basic-configuration/src/basic_configuration/init.py
    • Added a new __init__.py file for the basic agent configuration example.
  • examples/agent-integration/agent-details/basic-configuration/src/basic_configuration/agent.py
    • Added a new agent file demonstrating basic agent detail configuration, including name, interaction mode, greeting, tools, framework, author, and skills.
  • examples/agent-integration/agent-settings/basic-settings/pyproject.toml
    • Added a new pyproject.toml file for the basic settings example.
  • examples/agent-integration/agent-settings/basic-settings/src/basic_settings/init.py
    • Added a new __init__.py file for the basic settings example.
  • examples/agent-integration/agent-settings/basic-settings/src/basic_settings/agent.py
    • Added a new agent file demonstrating basic settings configuration with a checkbox group for 'thinking mode'.
  • examples/agent-integration/canvas/canvas-with-llm/pyproject.toml
    • Added a new pyproject.toml file for the canvas with LLM example.
  • examples/agent-integration/canvas/canvas-with-llm/src/canvas_with_llm/init.py
    • Added a new __init__.py file for the canvas with LLM example.
  • examples/agent-integration/canvas/canvas-with-llm/src/canvas_with_llm/agent.py
    • Added a new agent file demonstrating canvas integration with an LLM, adapting prompts for new content generation and existing code editing.
  • examples/agent-integration/citations/citation-basic-usage/pyproject.toml
    • Added a new pyproject.toml file for the basic citation usage example.
  • examples/agent-integration/citations/citation-basic-usage/src/citation_basic_usage/init.py
    • Added a new __init__.py file for the basic citation usage example.
  • examples/agent-integration/citations/citation-basic-usage/src/citation_basic_usage/agent.py
    • Added a new agent file demonstrating basic citation usage, including response text and associated metadata.
  • examples/agent-integration/env-variables/basic-environment-variables/pyproject.toml
    • Added a new pyproject.toml file for the basic environment variables example.
  • examples/agent-integration/env-variables/basic-environment-variables/src/basic_environment_variables/init.py
    • Added a new __init__.py file for the basic environment variables example.
  • examples/agent-integration/env-variables/basic-environment-variables/src/basic_environment_variables/agent.py
    • Added a new agent file demonstrating the use of environment variables for configuration, specifically a 'THINKING_ENABLED' flag.
  • examples/agent-integration/error/adding-error-context/pyproject.toml
    • Added a new pyproject.toml file for the adding error context example.
  • examples/agent-integration/error/adding-error-context/src/adding_error_context/init.py
    • Added a new __init__.py file for the adding error context example.
  • examples/agent-integration/error/adding-error-context/src/adding_error_context/agent.py
    • Added a new agent file demonstrating how to attach arbitrary context to errors using ErrorExtensionServer.
  • examples/agent-integration/error/advanced-error-reporting/pyproject.toml
    • Added a new pyproject.toml file for the advanced error reporting example.
  • examples/agent-integration/error/advanced-error-reporting/src/advanced_error_reporting/init.py
    • Added a new __init__.py file for the advanced error reporting example.
  • examples/agent-integration/error/advanced-error-reporting/src/advanced_error_reporting/agent.py
    • Added a new agent file demonstrating advanced error reporting with stack traces enabled.
  • examples/agent-integration/error/multiple-errors-handling/pyproject.toml
    • Added a new pyproject.toml file for the multiple errors handling example.
  • examples/agent-integration/error/multiple-errors-handling/src/multiple_errors_handling/init.py
    • Added a new __init__.py file for the multiple errors handling example.
  • examples/agent-integration/error/multiple-errors-handling/src/multiple_errors_handling/agent.py
    • Added a new agent file demonstrating how to report multiple errors using ExceptionGroup.
  • examples/agent-integration/error/standard-error-reporting/pyproject.toml
    • Added a new pyproject.toml file for the standard error reporting example.
  • examples/agent-integration/error/standard-error-reporting/src/standard_error_reporting/init.py
    • Added a new __init__.py file for the standard error reporting example.
  • examples/agent-integration/error/standard-error-reporting/src/standard_error_reporting/agent.py
    • Added a new agent file demonstrating standard error reporting when an exception is raised.
  • examples/agent-integration/files/file-processing/pyproject.toml
    • Added a new pyproject.toml file for the file processing example.
  • examples/agent-integration/files/file-processing/src/file_processing/init.py
    • Added a new __init__.py file for the file processing example.
  • examples/agent-integration/files/file-processing/src/file_processing/agent.py
    • Added a new agent file demonstrating how to accept, process, and modify both text and binary files.
  • examples/agent-integration/forms/dynamic-form-requests/pyproject.toml
    • Added a new pyproject.toml file for the dynamic form requests example.
  • examples/agent-integration/forms/dynamic-form-requests/src/dynamic_form_requests/init.py
    • Added a new __init__.py file for the dynamic form requests example.
  • examples/agent-integration/forms/dynamic-form-requests/src/dynamic_form_requests/agent.py
    • Added a new agent file demonstrating how to dynamically request forms during a conversation to collect structured input.
  • examples/agent-integration/forms/initial-form-rendering/pyproject.toml
    • Updated the agentstack-sdk dependency to >=0.5.3 for broader version compatibility.
    • Added tool.pyright configuration for consistent type checking.
  • examples/agent-integration/llm-proxy-service/llm-access/pyproject.toml
    • Added a new pyproject.toml file for the LLM access example.
  • examples/agent-integration/llm-proxy-service/llm-access/src/llm_access/init.py
    • Added a new __init__.py file for the LLM access example.
  • examples/agent-integration/llm-proxy-service/llm-access/src/llm_access/agent.py
    • Added a new agent file demonstrating how to receive a user message and respond using credentials provided by the LLM Proxy Service.
  • examples/agent-integration/mcp/custom-mcp-client-with-oauth/pyproject.toml
    • Added a new pyproject.toml file for the custom MCP client with OAuth example.
  • examples/agent-integration/mcp/custom-mcp-client-with-oauth/src/custom_mcp_client_with_oauth/init.py
    • Added a new __init__.py file for the custom MCP client with OAuth example.
  • examples/agent-integration/mcp/custom-mcp-client-with-oauth/src/custom_mcp_client_with_oauth/agent.py
    • Added a new agent file demonstrating how to build an agent that creates a custom MCP client and uses OAuth for authentication.
  • examples/agent-integration/mcp/github-mcp-agent/pyproject.toml
    • Added a new pyproject.toml file for the GitHub MCP agent example.
  • examples/agent-integration/mcp/github-mcp-agent/src/github_mcp_agent/init.py
    • Added a new __init__.py file for the GitHub MCP agent example.
  • examples/agent-integration/mcp/github-mcp-agent/src/github_mcp_agent/agent.py
    • Added a new agent file demonstrating how to use the GitHub MCP connector to call a tool.
  • examples/agent-integration/multi-turn/advanced-history/pyproject.toml
    • Updated the agentstack-sdk dependency to >=0.5.3 for broader version compatibility.
    • Added tool.pyright configuration for consistent type checking.
  • examples/agent-integration/multi-turn/basic-history/pyproject.toml
    • Updated the agentstack-sdk dependency to >=0.5.3 for broader version compatibility.
    • Added tool.pyright configuration for consistent type checking.
  • examples/agent-integration/rag/conversation-rag-agent/pyproject.toml
    • Added a new pyproject.toml file for the conversational RAG agent example.
  • examples/agent-integration/rag/conversation-rag-agent/src/conversation_rag_agent/init.py
    • Added a new __init__.py file for the conversational RAG agent example.
  • examples/agent-integration/rag/conversation-rag-agent/src/conversation_rag_agent/agent.py
    • Added a new agent file demonstrating a conversational RAG agent that reuses a vector store across messages.
  • examples/agent-integration/rag/conversation-rag-agent/src/conversation_rag_agent/embedding/init.py
    • Added a new __init__.py file for the embedding sub-module.
  • examples/agent-integration/rag/conversation-rag-agent/src/conversation_rag_agent/embedding/client.py
    • Added a new file containing a function to get an OpenAI-compatible embedding client.
  • examples/agent-integration/rag/conversation-rag-agent/src/conversation_rag_agent/embedding/embed.py
    • Added a new file containing a function to embed text chunks and create vector store items.
  • examples/agent-integration/rag/conversation-rag-agent/src/conversation_rag_agent/extraction.py
    • Added a new file containing a function to extract text from a platform file.
  • examples/agent-integration/rag/conversation-rag-agent/src/conversation_rag_agent/text_splitting.py
    • Added a new file containing a function to chunk markdown text using MarkdownTextSplitter.
  • examples/agent-integration/rag/conversation-rag-agent/src/conversation_rag_agent/vector_store/init.py
    • Added a new __init__.py file for the vector store sub-module.
  • examples/agent-integration/rag/conversation-rag-agent/src/conversation_rag_agent/vector_store/create.py
    • Added a new file containing a function to create a vector store with dynamic dimension and model ID.
  • examples/agent-integration/rag/conversation-rag-agent/src/conversation_rag_agent/vector_store/search.py
    • Added a new file containing a function to search a vector store for similar document chunks.
  • examples/agent-integration/rag/simple-rag-agent/pyproject.toml
    • Added a new pyproject.toml file for the simple RAG agent example.
  • examples/agent-integration/rag/simple-rag-agent/src/simple_rag_agent/init.py
    • Added a new __init__.py file for the simple RAG agent example.
  • examples/agent-integration/rag/simple-rag-agent/src/simple_rag_agent/agent.py
    • Added a new agent file demonstrating a simple RAG agent that processes files and returns search results.
  • examples/agent-integration/rag/simple-rag-agent/src/simple_rag_agent/embedding/init.py
    • Added a new __init__.py file for the embedding sub-module.
  • examples/agent-integration/rag/simple-rag-agent/src/simple_rag_agent/embedding/client.py
    • Added a new file containing a function to get an OpenAI-compatible embedding client.
  • examples/agent-integration/rag/simple-rag-agent/src/simple_rag_agent/embedding/embed.py
    • Added a new file containing a function to embed text chunks and create vector store items.
  • examples/agent-integration/rag/simple-rag-agent/src/simple_rag_agent/extraction.py
    • Added a new file containing a function to extract text from a platform file.
  • examples/agent-integration/rag/simple-rag-agent/src/simple_rag_agent/text_splitting.py
    • Added a new file containing a function to chunk markdown text using MarkdownTextSplitter.
  • examples/agent-integration/rag/simple-rag-agent/src/simple_rag_agent/vector_store/init.py
    • Added a new __init__.py file for the vector store sub-module.
  • examples/agent-integration/rag/simple-rag-agent/src/simple_rag_agent/vector_store/create.py
    • Added a new file containing a function to create a vector store with dynamic dimension and model ID.
  • examples/agent-integration/rag/simple-rag-agent/src/simple_rag_agent/vector_store/search.py
    • Added a new file containing a function to search a vector store for similar document chunks.
  • examples/agent-integration/secrets/basic-secrets/pyproject.toml
    • Added a new pyproject.toml file for the basic secrets example.
  • examples/agent-integration/secrets/basic-secrets/src/basic_secrets/init.py
    • Added a new __init__.py file for the basic secrets example.
  • examples/agent-integration/secrets/basic-secrets/src/basic_secrets/agent.py
    • Added a new agent file demonstrating how to request and use secrets, handling cases where secrets are missing.
  • examples/agent-integration/tool-calls/basic-approve/pyproject.toml
    • Added a new pyproject.toml file for the basic approve example.
  • examples/agent-integration/tool-calls/basic-approve/src/basic_approve/init.py
    • Added a new __init__.py file for the basic approve example.
  • examples/agent-integration/tool-calls/basic-approve/src/basic_approve/agent.py
    • Added a new agent file demonstrating tool call approval using the BeeAI Framework and Approval Extension.
  • examples/agent-integration/trajectory/trajectory-basic-usage/pyproject.toml
    • Added a new pyproject.toml file for the basic trajectory usage example.
  • examples/agent-integration/trajectory/trajectory-basic-usage/src/trajectory_basic_usage/init.py
    • Added a new __init__.py file for the basic trajectory usage example.
  • examples/agent-integration/trajectory/trajectory-basic-usage/src/trajectory_basic_usage/agent.py
    • Added a new agent file demonstrating basic trajectory usage, yielding planning and execution steps.
  • examples/agentstack-server/tests/e2e/examples/agent-integration/rag/zorblax_spec.md
    • Added a new markdown file containing a detailed specification for the 'Zorblax Engine' to be used in RAG examples.
  • examples/deploy-agents/building-agents/implement-your-agent-logic/pyproject.toml
    • Updated the agentstack-sdk dependency to >=0.5.3 for broader version compatibility.
    • Added tool.pyright configuration for consistent type checking.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request is a great addition, providing a comprehensive set of examples and end-to-end tests for various agent integrations. The documentation has also been updated to embed these examples, which will significantly improve the developer experience. The overall code quality is high. I've identified a few minor areas for improvement, mainly related to code duplication in tests and a small typo in a configuration file. Addressing these will enhance the maintainability and robustness of the new code.

Comment on lines +30 to +57
with subtests.test("agent detail extension is configured"):
agent_detail = get_extension(agent_card, AGENT_DETAIL_EXTENSION_URI)
assert agent_detail is not None

params = agent_detail.model_dump()["params"]
assert params["interaction_mode"] == "multi-turn"
assert (
params["user_greeting"] == "Hi there! I can help you research topics or summarize uploaded documents."
)
assert params["framework"] == "BeeAI Framework"
assert params["source_code_url"] == "https://github.com/example/example-research-assistant"

with subtests.test("agent detail has author info"):
agent_detail = get_extension(agent_card, AGENT_DETAIL_EXTENSION_URI)
params = agent_detail.model_dump()["params"]

assert params["author"]["name"] == "Agent Stack Team"
assert params["author"]["email"] == "[email protected]"

with subtests.test("agent detail has tools"):
agent_detail = get_extension(agent_card, AGENT_DETAIL_EXTENSION_URI)
params = agent_detail.model_dump()["params"]

tools = params["tools"]
assert len(tools) == 2

tool_names = {tool["name"] for tool in tools}
assert tool_names == {"Web Search", "Document Reader"}
Copy link
Contributor

Choose a reason for hiding this comment

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

medium

To improve readability and reduce code repetition, the agent_detail and params variables can be fetched once before the subtests that use them. This makes the test cleaner and more maintainable.

        agent_detail = get_extension(agent_card, AGENT_DETAIL_EXTENSION_URI)
        assert agent_detail is not None
        params = agent_detail.model_dump()["params"]

        with subtests.test("agent detail extension is configured"):
            assert params["interaction_mode"] == "multi-turn"
            assert (
                params["user_greeting"] == "Hi there! I can help you research topics or summarize uploaded documents."
            )
            assert params["framework"] == "BeeAI Framework"
            assert params["source_code_url"] == "https://github.com/example/example-research-assistant"

        with subtests.test("agent detail has author info"):
            assert params["author"]["name"] == "Agent Stack Team"
            assert params["author"]["email"] == "[email protected]"

        with subtests.test("agent detail has tools"):
            tools = params["tools"]
            assert len(tools) == 2

            tool_names = {tool["name"] for tool in tools}
            assert tool_names == {"Web Search", "Document Reader"}

@aleskalfas aleskalfas added the e2e-examples Trigger e2e example tests on PR label Feb 12, 2026
@aleskalfas aleskalfas force-pushed the 2008-convert-the-rest-of-agents-rebased branch from b12fbda to e9cb088 Compare February 12, 2026 14:00
@aleskalfas aleskalfas added e2e-examples Trigger e2e example tests on PR and removed e2e-examples Trigger e2e example tests on PR labels Feb 12, 2026
Signed-off-by: Aleš Kalfas <[email protected]>
Signed-off-by: Aleš Kalfas <[email protected]>
Signed-off-by: Aleš Kalfas <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

e2e-examples Trigger e2e example tests on PR

Projects

Status: No status

Development

Successfully merging this pull request may close these issues.

1 participant