DSPy Agent Provider
===================
This module provides an adapter for using `DSPy `_ agents with the Agentstr framework.
Overview
--------
The main component is the ``dspy_agent_callable`` function, which wraps a DSPy module (like ``dspy.ReAct``), making it compatible with the ``NostrAgent``. This allows you to leverage DSPy's capabilities within the Agentstr ecosystem.
Usage
~~~~~
.. code-block:: python
from agentstr.agents.providers.dspy import dspy_agent_callable
from agentstr import NostrAgent, AgentCard
import dspy
# Note: To run this example, you need the Agentstr DSPy extra
# pip install agentstr-sdk[dspy]
# 1. Configure DSPy with a language model
lm = dspy.OpenAI(model='gpt-3.5-turbo')
dspy.settings.configure(lm=lm)
# 2. Initialize a DSPy module (e.g., a ReAct agent)
# The signature defines the input ('question') and output ('answer') fields.
my_dspy_agent = dspy.ReAct("question -> answer")
# 3. Wrap the DSPy module to create a callable compatible with Agentstr
agent_callable = dspy_agent_callable(my_dspy_agent)
# 4. Create the NostrAgent, providing the callable and an AgentCard
agent_card = AgentCard(name="DSPyBot", description="An agent powered by DSPy.")
nostr_agent = NostrAgent(
agent_card=agent_card,
agent_callable=agent_callable,
)
# This `nostr_agent` can now be used with a NostrAgentServer.
Reference
---------
.. automodule:: agentstr.agents.providers.dspy
:members:
:undoc-members:
:show-inheritance:
See Also
--------
- :doc:`../../mcp/providers/dspy` — For converting MCP tools to the DSPy format.
- `DSPy Example `_ - A complete example of using DSPy with Agentstr.