Skip to content

Releases: mozilla-ai/any-agent

0.10.0

25 Apr 15:09
5768f9a
Compare
Choose a tag to compare

What's Changed

  • feat: Support **kwargs in AnyAgent.run method. by @daavoo in #159
from any_agent import AgentConfig, AnyAgent, TracingConfig
from any_agent.tools import search_web, visit_webpage

agent = AnyAgent.create(
    "openai",
    AgentConfig(
        model_id="gpt-4.1-nano",
        instructions="Use the tools to find an answer",
        tools=[search_web, visit_webpage]
    ),
    tracing=TracingConfig(output_dir="traces") 
)

# Or any other args in https://openai.github.io/openai-agents-python/ref/run/#agents.run.Runner.run
agent.run("Which Agent Framework is the best??", max_turns=5)
  • feat(tracing): Add cost_info option. by @daavoo in #154

Can be disabled with TracingConfig(cost_info=False).

437377810-c6e5b73d-9520-4749-97b2-0e18b1ea80c7

  • Filter MCP Tools and write a unit test to check it by @njbrake in #152
  • chore: Enable and fix pydocstyle (D) rules. by @daavoo in #157
  • Implement an SSE Fixture and split mcp tests into their own files by @njbrake in #158
  • Minor contributing doc changes by @javiermtorres in #161

New Contributors

Full Changelog: 0.9.0...0.10.0

0.9.0

24 Apr 15:31
02b1133
Compare
Choose a tag to compare

What's Changed

  • feat(any_agent): Expose create_async. by @daavoo in #151
  • chore: Add lint.yaml and pre-commit-update.yaml by @daavoo in #138
  • Update README.md by @njbrake in #141
  • Refactor MCP Servers to use discriminated unions by @ELC in #115
  • Update README.md by @njbrake in #146
  • If the interaction is empty, don't log the bars by @njbrake in #147
  • chore(pre-commit): simplify mypy dependencies by @ELC in #113
  • fix: langchain mcp hang by @njbrake in #149

Full Changelog: 0.8.0...0.9.0

0.8.0

22 Apr 18:38
80dc579
Compare
Choose a tag to compare

What's Changed

  • All providers use LiteLLM under the hood. by @njbrake in #124

You can now use the same model_id syntax across any of the supported frameworks.

  • feat(agno): Add support for managed_agents. by @daavoo in #127
from any_agent import AgentConfig, AnyAgent
from any_agent.tools import search_web, visit_webpage

agent = AnyAgent.create(
    "agno", 
    AgentConfig(
        model_id="gpt-4.1-mini",
    ),
    managed_agents=[
        AgentConfig(
            name="search_web_agent",
            description="An agent that can search the web",
            model_id="gpt-4.1-nano",
            tools=[search_web]
        ),
        AgentConfig(
            name="visit_webpage_agent",
            description="An agent that can visit webpages",
            model_id="gpt-4.1-nano",
            tools=[visit_webpage]
        )
    ]
)

agent.run("Which Agent Framework is the best??")
  • Update docs to clarify python version requirement by @njbrake in #128
  • refactor(mcp): divide each framework in different files and separate the logic for STDIO and SSE by @ELC in #112
  • tests(mcp): Use dumb tool instead of search_web. by @daavoo in #131
  • OpenAI release LiteLLM support by @njbrake in #132
  • Create dependabot.yml by @daavoo in #135
  • Smolagents: use new MCPClient syntax by @njbrake in #133
  • fix(tracing): Include framework name in output file. by @daavoo in #136

Full Changelog: 0.7.0...0.8.0

0.7.0

21 Apr 19:26
Compare
Choose a tag to compare

What's Changed

  • Add exhaustive checks for enums by @ELC in #96
  • refactor(telemetry): Move shared methods to base class. by @daavoo in #101
  • Add more information about model arguments by @njbrake in #109
  • Add pre-commit-autoupdate hook and lint with latest version of ruff by @ELC in #111
  • tests: Allow to run integration tests via workflow_dispatch. by @daavoo in #118
  • Update agno by @njbrake in #120
  • Tracing as a setting when creating the Agent by @njbrake in #107
  • refactor(frameworks): Implement _load_tools in base class. by @daavoo in #103
  • Updates to CI by @daavoo in #122
  • docs: Drop AgentFramework usage. by @daavoo in #123

Full Changelog: 0.6.0...0.7.0

0.6.0

17 Apr 15:24
b92da0d
Compare
Choose a tag to compare

AnyAgent now supports both Stdio and SSE based MCP!

What's Changed

  • pytest run the code in the docs by @njbrake in #93
  • Simplify and document options for adding sys prompt by @njbrake in #94
  • feat(lint): add stricter checks from ruff by @ELC in #97
  • Only pass in a callable or MCPTool by @njbrake in #98
  • feat(lint): add strict mypy checks by @ELC in #95
  • MCP SSE support by @njbrake in #102

New Contributors

  • @ELC made their first contribution in #97

Full Changelog: 0.5.0...0.6.0

0.5.0

15 Apr 13:59
dedd5c8
Compare
Choose a tag to compare

What's Changed

  • 70 support managed agents with langchain by @daavoo in #76
  • 71 support managed agents with llama index by @daavoo in #82
from any_agent import AgentConfig, AgentFramework, AnyAgent
from any_agent.tracing import setup_tracing

framework = AgentFramework("langchain")  # or AgentFramework("llama_index")

setup_tracing(framework)

agent = AnyAgent.create(
    framework,
    AgentConfig(
        model_id="gpt-4.1-mini",
        instructions="You are the main agent. Use the other available agents to find an answer",
    ),
    managed_agents=[
        AgentConfig(
            name="search_web_agent",
            description="An agent that can search the web",
            model_id="gpt-4.1-nano",
            tools=["any_agent.tools.search_web"]
        ),
        AgentConfig(
            name="visit_webpage_agent",
            description="An agent that can visit webpages",
            model_id="gpt-4.1-nano",
            tools=["any_agent.tools.visit_webpage"]
        )
    ]
)

agent.run("Which Agent Framework is the best??")

Full Changelog: 0.4.0...0.5.0

0.4.0

14 Apr 17:25
47a021c
Compare
Choose a tag to compare

What's Changed

Full Changelog: 0.3.0...0.4.0

0.3.0

11 Apr 22:51
474fca2
Compare
Choose a tag to compare

What's Changed

Full Changelog: 0.2.0...0.3.0

0.2.0

10 Apr 12:48
5d206cc
Compare
Choose a tag to compare

What's Changed

  • feat: Add support for Google Agent Development Kit (ADK) by @daavoo in #52
agent = AnyAgent.create(
    AgentFramework("google"),
    AgentConfig(
        model_id="gemini/gemini-2.0-flash"
    )
)
agent.run("Which Agent Framework is the best??")
  • feat(llama_index): Use LiteLLM as default model class. by @daavoo in #48

Allows you to use a consistent LiteLLM syntax in the model_id argument across google, llama_index and smolagents:

agent = AnyAgent.create(
    AgentFramework("llama_index"),
    AgentConfig(
        model_id="gemini/gemini-2.0-flash"
    )
)
agent.run("Which Agent Framework is the best??")
  • Update README.md by @njbrake in #41
  • Add Jupyter notebook clarification by @njbrake in #42
  • build: Add all group in optional-dependencies. by @daavoo in #49
  • More direct calls for contribution by @njbrake in #46
  • docs(frameworks): Add Models section. by @daavoo in #53

Full Changelog: 0.1.0...0.2.0

0.1.0

08 Apr 10:27
Compare
Choose a tag to compare

What's Changed

  • Initial setup by @daavoo in #1
  • Support for Smolagents MCP by @njbrake in #5
  • OpenAI MCP Tool Support by @njbrake in #6
  • Langchain support for MCP (theoretically) by @njbrake in #7
  • Class based AnyAgent by @njbrake in #8
  • Make mcp an optional dep. by @daavoo in #9
  • Add llama_index framework by @daavoo in #11
  • Add telemetry support and fix tool getter by @njbrake in #12
  • enh(config): Updates to allow passing arbitrary args to agent and model. by @daavoo in #13
  • OpenAI MCP Server was hanging by @njbrake in #15
  • enh(instructions): Automatically detect imports. by @daavoo in #18
  • fix(tools/wrappers): Use correct base class in wrap_tool_openai. by @daavoo in #19
  • Add initial docs by @daavoo in #21
  • Revisit tracing by @daavoo in #22
  • integration test for mcp, clean up code by @njbrake in #23
  • Add a little more detail in Readme by @njbrake in #25
  • Doc edits by @stefanfrench in #29
  • MCP Tools are Optional by @njbrake in #24
  • MCPToolsManager -> MCPServer by @njbrake in #32
  • Support llama_index telemetry, and also regularize logging across frameworks by @njbrake in #33
  • feat(tracing): Use rich for console exporter. by @daavoo in #35
  • bugfix for span extraction by @njbrake in #38
  • fix(tracing): Cast output to string for using Markdown. by @daavoo in #39
  • Evaluation Codebase Comes to Any-Agent by @njbrake in #40

New Contributors

Full Changelog: https://github.com/mozilla-ai/any-agent/commits/0.1.0