Releases: mozilla-ai/any-agent
Releases · mozilla-ai/any-agent
0.10.0
What's Changed
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)
Can be disabled with TracingConfig(cost_info=False)
.
- 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
- @javiermtorres made their first contribution in #161
Full Changelog: 0.9.0...0.10.0
0.9.0
What's Changed
- feat(any_agent): Expose
create_async
. by @daavoo in #151 - chore: Add
lint.yaml
andpre-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
What's Changed
You can now use the same model_id
syntax across any of the supported frameworks.
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
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
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
Full Changelog: 0.5.0...0.6.0
0.5.0
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??")
- feat(tools): Support passing callable. by @daavoo in #81
- Update README.md by @njbrake in #79
- Minor Updates to README. by @daavoo in #84
- tests: Add autouse fixture
disable_rich_console
. by @daavoo in #85 - Update tracing.md by @njbrake in #88
Full Changelog: 0.4.0...0.5.0
0.4.0
0.3.0
What's Changed
- Update README.md by @njbrake in #55
- feat(langchain): Use
LiteLLM
as defaultmodel_type
by @daavoo in #60 - Update install instructions if imports are missing by @njbrake in #62
- Make Agent.run use async under the hood by @njbrake in #63
- MCP becomes more async by @njbrake in #65
- Improvements to integration tests by @daavoo in #61
- chore: Drop
loguru
in favor ofrich
. by @daavoo in #66 - Tests are sync by @njbrake in #67
- Fix MCP Server, no more global variable by @njbrake in #68
- Add LlamaIndex MCP Support by @njbrake in #72
Full Changelog: 0.2.0...0.3.0
0.2.0
What's Changed
agent = AnyAgent.create(
AgentFramework("google"),
AgentConfig(
model_id="gemini/gemini-2.0-flash"
)
)
agent.run("Which Agent Framework is the best??")
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 inoptional-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
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
- @daavoo made their first contribution in #1
- @njbrake made their first contribution in #5
- @stefanfrench made their first contribution in #29
Full Changelog: https://github.com/mozilla-ai/any-agent/commits/0.1.0