Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions bedrock_agentcore/strands_agent/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ It combines three things:

- The [Temporal Strands
plugin](https://docs.temporal.io/develop/python/integrations/strands-agents),
installed as the standalone `temporalio-strands-agents` package (requires Temporal 1.34.0 or later),
which runs the agent inside a Workflow and turns every model call into a
Temporal Activity -- so model invocations get durable retries, timeouts, and
crash recovery.
Expand Down
2 changes: 1 addition & 1 deletion bedrock_agentcore/strands_agent/agentcore_worker.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
from bedrock_agentcore.runtime import BedrockAgentCoreApp
from temporalio.client import Client
from temporalio.common import VersioningBehavior
from temporalio.contrib.strands import StrandsPlugin
from temporalio.strands_agents import StrandsPlugin
from temporalio.worker import (
ActivityInboundInterceptor,
ExecuteActivityInput,
Expand Down
3 changes: 2 additions & 1 deletion bedrock_agentcore/strands_agent/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ requires-python = ">=3.10"
readme = "README.md"
license = "MIT"
dependencies = [
"temporalio[strands-agents,pydantic]>=1.32.0,<2",
"temporalio>=1.34.0,<2",
"temporalio-strands-agents>=0.1.0",
"strands-agents>=1.39.0",
"bedrock-agentcore>=1.9.1",
"strands-agents-tools>=0.5.2",
Expand Down
2 changes: 1 addition & 1 deletion bedrock_agentcore/strands_agent/starter.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
import sys

from temporalio.client import Client
from temporalio.contrib.strands import StrandsPlugin
from temporalio.envconfig import ClientConfig
from temporalio.strands_agents import StrandsPlugin

from workflows import TASK_QUEUE, StrandsAgentWorkflow

Expand Down
49 changes: 29 additions & 20 deletions bedrock_agentcore/strands_agent/uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions bedrock_agentcore/strands_agent/workflows.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from datetime import timedelta

from temporalio import workflow
from temporalio.contrib.strands import TemporalAgent
from temporalio.contrib.strands.workflow import activity_as_tool
from temporalio.strands_agents import TemporalAgent
from temporalio.strands_agents.workflow import activity_as_tool

TASK_QUEUE = "agentcore-strands-task-queue"
DEPLOYMENT_NAME = "agentcore-strands-agent-python"
Expand Down
12 changes: 6 additions & 6 deletions deepagents_plugin/README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
# Deep Agents Samples

These samples demonstrate the [Temporal Deep Agents plugin](https://github.com/temporalio/sdk-python/tree/main/temporalio/contrib/deepagents),
These samples demonstrate the [Temporal Deep Agents plugin](https://github.com/temporalio/ai-integrations/tree/main/python/deepagents),
which makes [LangChain Deep Agents](https://github.com/langchain-ai/deepagents)
durable. Build your agent with `create_deep_agent(...)` inside a
`@workflow.defn` and add `DeepAgentsPlugin()` to your client — each LLM call and
each I/O tool/backend operation becomes a Temporal Activity, while the agent's
control loop runs (and deterministically replays) inside the Workflow.

> **Experimental.** The `temporalio.contrib.deepagents` plugin is experimental
> **Experimental.** The `temporalio.deepagents` plugin is experimental
> and its API may change.

`DeepAgentsPlugin` is a **client-level** plugin: add it to `Client.connect(...)`
Expand Down Expand Up @@ -40,9 +40,9 @@ one side.
uv sync --group deepagents
```

> The group installs the `temporalio[deepagents]` extra (released in
> `temporalio` 1.32.0) plus the Anthropic provider package. Requires
> Python >= 3.11 — on older interpreters the group resolves to nothing
> The group installs the standalone `temporalio-deepagents` and
> `temporalio-langsmith` packages plus the Anthropic provider package. Requires
> Temporal 1.34.0 or later and Python >= 3.11 — on older interpreters the group resolves to nothing
> and the samples are skipped.

2. Configure a model provider. The samples use
Expand Down Expand Up @@ -112,6 +112,6 @@ uv run deepagents_plugin/langsmith_tracing/main.py

## Related

- [Temporal Deep Agents plugin](https://github.com/temporalio/sdk-python/tree/main/temporalio/contrib/deepagents)
- [Temporal Deep Agents plugin](https://github.com/temporalio/ai-integrations/tree/main/python/deepagents)
- [LangChain Deep Agents](https://github.com/langchain-ai/deepagents)
- [langgraph_plugin](../langgraph_plugin) — for agents built directly as LangGraph graphs
2 changes: 1 addition & 1 deletion deepagents_plugin/continue_as_new/run_worker.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import os

from temporalio.client import Client
from temporalio.contrib.deepagents import DeepAgentsPlugin
from temporalio.deepagents import DeepAgentsPlugin
from temporalio.worker import Worker

from deepagents_plugin.continue_as_new.workflow import LongResearchAgent
Expand Down
2 changes: 1 addition & 1 deletion deepagents_plugin/continue_as_new/workflow.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@

from deepagents import create_deep_agent
from temporalio import workflow
from temporalio.contrib.deepagents import run_deep_agent
from temporalio.deepagents import run_deep_agent


@workflow.defn
Expand Down
2 changes: 1 addition & 1 deletion deepagents_plugin/filesystem_backend/run_worker.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import os

from temporalio.client import Client
from temporalio.contrib.deepagents import DeepAgentsPlugin
from temporalio.deepagents import DeepAgentsPlugin
from temporalio.worker import Worker

from deepagents_plugin.filesystem_backend.workflow import FilesystemAgent
Expand Down
2 changes: 1 addition & 1 deletion deepagents_plugin/filesystem_backend/workflow.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
from deepagents import create_deep_agent
from deepagents.backends import FilesystemBackend
from temporalio import workflow
from temporalio.contrib.deepagents import TemporalBackend
from temporalio.deepagents import TemporalBackend


@workflow.defn
Expand Down
2 changes: 1 addition & 1 deletion deepagents_plugin/hello_world/run_worker.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
import os

from temporalio.client import Client
from temporalio.contrib.deepagents import DeepAgentsPlugin
from temporalio.deepagents import DeepAgentsPlugin
from temporalio.worker import Worker

from deepagents_plugin.hello_world.workflow import HelloWorldAgent
Expand Down
2 changes: 1 addition & 1 deletion deepagents_plugin/human_in_the_loop/run_worker.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import os

from temporalio.client import Client
from temporalio.contrib.deepagents import DeepAgentsPlugin
from temporalio.deepagents import DeepAgentsPlugin
from temporalio.worker import Worker

from deepagents_plugin.human_in_the_loop.workflow import HumanInTheLoopAgent
Expand Down
2 changes: 1 addition & 1 deletion deepagents_plugin/human_in_the_loop/workflow.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
from langgraph.checkpoint.memory import InMemorySaver
from langgraph.types import Command
from temporalio import workflow
from temporalio.contrib.deepagents import tool_as_activity
from temporalio.deepagents import tool_as_activity


@workflow.defn
Expand Down
2 changes: 1 addition & 1 deletion deepagents_plugin/langsmith_tracing/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ API keys).

## What This Sample Demonstrates

- Composing `DeepAgentsPlugin` with `temporalio.contrib.langsmith.LangSmithPlugin`
- Composing `DeepAgentsPlugin` with `temporalio.langsmith.LangSmithPlugin`
- Order-independent plugin registration

## Running the Sample
Expand Down
4 changes: 2 additions & 2 deletions deepagents_plugin/langsmith_tracing/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
import os

from temporalio.client import Client
from temporalio.contrib.deepagents import DeepAgentsPlugin
from temporalio.contrib.langsmith import LangSmithPlugin
from temporalio.deepagents import DeepAgentsPlugin
from temporalio.langsmith import LangSmithPlugin
from temporalio.worker import Worker

from deepagents_plugin.langsmith_tracing.workflow import TracedAgent
Expand Down
2 changes: 1 addition & 1 deletion deepagents_plugin/react_agent/run_worker.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
import os

from temporalio.client import Client
from temporalio.contrib.deepagents import DeepAgentsPlugin
from temporalio.deepagents import DeepAgentsPlugin
from temporalio.worker import Worker

from deepagents_plugin.react_agent.workflow import ReactAgent, get_weather
Expand Down
2 changes: 1 addition & 1 deletion deepagents_plugin/react_agent/workflow.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

from langchain_core.tools import tool
from temporalio import activity, workflow
from temporalio.contrib.deepagents import (
from temporalio.deepagents import (
activity_as_tool,
create_temporal_deep_agent,
tool_as_activity,
Expand Down
2 changes: 1 addition & 1 deletion deepagents_plugin/streaming/run_worker.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import os

from temporalio.client import Client
from temporalio.contrib.deepagents import DeepAgentsPlugin
from temporalio.deepagents import DeepAgentsPlugin
from temporalio.worker import Worker

from deepagents_plugin.streaming.workflow import STREAMING_TOPIC, StreamingWorkflow
Expand Down
2 changes: 1 addition & 1 deletion deepagents_plugin/streaming/workflow.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@
# @@@SNIPSTART python-deepagents-streaming-workflow
from langchain_core.messages import HumanMessage
from temporalio import workflow
from temporalio.contrib.deepagents import TemporalModel
from temporalio.contrib.workflow_streams import WorkflowStream
from temporalio.deepagents import TemporalModel

STREAMING_TOPIC = "model-chunks"

Expand Down
2 changes: 1 addition & 1 deletion deepagents_plugin/subagents/run_worker.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import os

from temporalio.client import Client
from temporalio.contrib.deepagents import DeepAgentsPlugin
from temporalio.deepagents import DeepAgentsPlugin
from temporalio.worker import Worker

from deepagents_plugin.subagents.workflow import SubagentsWorkflow
Expand Down
5 changes: 3 additions & 2 deletions google_adk_agents/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ change prior to General Availability.

This directory contains samples demonstrating how to run
[Google ADK](https://google.github.io/adk-docs/) agents durably inside Temporal
workflows using `temporalio.contrib.google_adk_agents`. Each scenario is a
workflows using `temporalio.google_adk`. Each scenario is a
self-contained subdirectory with its own worker, workflow starter, workflow and
activity packages, and README.

Expand All @@ -27,7 +27,8 @@ model turn is durable and observable.
```
temporal server start-dev
```
- Dependencies installed via `uv sync --group google-adk`
- Dependencies installed via `uv sync --group google-adk`, including the standalone
`temporalio-google-adk[mcp]` package (requires Temporal 1.34.0 or later)
- Google API key set as an environment variable:
`export GOOGLE_API_KEY=your_key_here`

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import os

from temporalio.client import Client
from temporalio.contrib.google_adk_agents import GoogleAdkPlugin
from temporalio.google_adk import GoogleAdkPlugin

from google_adk_agents.agent_patterns.workflows.multi_agent_workflow import (
MultiAgentWorkflow,
Expand Down
2 changes: 1 addition & 1 deletion google_adk_agents/agent_patterns/run_worker.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import os

from temporalio.client import Client
from temporalio.contrib.google_adk_agents import GoogleAdkPlugin
from temporalio.google_adk import GoogleAdkPlugin
from temporalio.worker import Worker

from google_adk_agents.agent_patterns.workflows.multi_agent_workflow import (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
from google.adk.sessions import InMemorySessionService
from google.genai import types
from temporalio import workflow
from temporalio.contrib.google_adk_agents import TemporalModel
from temporalio.google_adk import TemporalModel
from temporalio.workflow import ActivityConfig


Expand Down
2 changes: 1 addition & 1 deletion google_adk_agents/basic/run_hello_world_workflow.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import os

from temporalio.client import Client
from temporalio.contrib.google_adk_agents import GoogleAdkPlugin
from temporalio.google_adk import GoogleAdkPlugin

from google_adk_agents.basic.workflows.hello_world_workflow import (
HelloWorldAgentWorkflow,
Expand Down
2 changes: 1 addition & 1 deletion google_adk_agents/basic/run_worker.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import os

from temporalio.client import Client
from temporalio.contrib.google_adk_agents import GoogleAdkPlugin
from temporalio.google_adk import GoogleAdkPlugin
from temporalio.worker import Worker

from google_adk_agents.basic.workflows.hello_world_workflow import (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from google.adk.utils.context_utils import Aclosing
from google.genai import types
from temporalio import workflow
from temporalio.contrib.google_adk_agents import TemporalModel
from temporalio.google_adk import TemporalModel


# @@@SNIPSTART google-adk-agents-basic-hello-world-agent-workflow
Expand Down
2 changes: 1 addition & 1 deletion google_adk_agents/chatbot/run_chatbot_workflow.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import os

from temporalio.client import Client
from temporalio.contrib.google_adk_agents import GoogleAdkPlugin
from temporalio.google_adk import GoogleAdkPlugin

from google_adk_agents.chatbot.workflows.chatbot_workflow import (
ChatbotAgentWorkflow,
Expand Down
2 changes: 1 addition & 1 deletion google_adk_agents/chatbot/run_worker.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
import os

from temporalio.client import Client
from temporalio.contrib.google_adk_agents import GoogleAdkPlugin
from temporalio.google_adk import GoogleAdkPlugin
from temporalio.worker import Worker

from google_adk_agents.chatbot.workflows.chatbot_workflow import (
Expand Down
Loading
Loading