Skip to content

Releases: mozilla-ai/any-agent

0.25.0

14 Jul 10:30
021d48f
Compare
Choose a tag to compare

🚀 feat: Introduce any_agent/callbacks. by @daavoo in #554

Check the docs: https://mozilla-ai.github.io/any-agent/agents/callbacks/
And cookbook: https://mozilla-ai.github.io/any-agent/cookbook/callbacks/

📖 docs(agents): Add batch processing example to documentation by @njbrake in #601

https://mozilla-ai.github.io/any-agent/agents/#batch-processing

🤖 📖 llms.txt and llms-full.txt by @njbrake in #620

Versions of the docs for LLM consumption:

https://mozilla-ai.github.io/any-agent/llms.txt
https://mozilla-ai.github.io/any-agent/llms-full.txt

Other changes

  • docs: Reorder Agents-As-Tools by @daavoo in #582
  • fix: Migrate structure output handling into any-agent by @njbrake in #573
  • Delete docs/examples/evaluation_case.yaml by @njbrake in #588
  • fix: typo in openai frameworks docstring by @njbrake in #589
  • feat: pin a2a sdk version by @njbrake in #592
  • feat: integration tests, consolidate model args and http_kwargs into single variables by @njbrake in #590
  • feat: restrict taskstates to those that are used. by @njbrake in #591
  • feat: unit tests for lanchain and tinyagent structured_output by @njbrake in #587
  • Brake/remove ambiguity by @njbrake in #593
  • Support for push notifications in non-streaming mode by @njbrake in #560
  • feat(callbacks): Introduce default callbacks and convert ConsoleExpor… by @daavoo in #586
  • fix(a2a): Bypass deepcopy of callbacks. by @daavoo in #596
  • Feat: Use Mistral API for docs and tests instead of OpenAI API by @njbrake in #574
  • feat: add task store configuration to A2A server by @njbrake in #594
  • feat(callbacks): Implement AddCostInfo and include it in the defaul… by @daavoo in #597
  • chore(a2a): Update a2a-sdk version and adjust push notification configuration to support new api by @njbrake in #602
  • docs: add tip about async by @njbrake in #600
  • feat: add any_agent.testing module by @njbrake in #599
  • docs(callbacks): Add SensitiveDataOffloader example. by @daavoo in #603
  • Enable A2A in mypy checks by @javiermtorres in #583
  • chore: Vendor langchain_litellm. by @daavoo in #608
  • Cache MyPy and Pre-Commit for faster lint by @njbrake in #611
  • feat: add MCP timeout setting to google adk by @njbrake in #610
  • docs: wider margin for main part of screen by @njbrake in #612
  • feat: remove sync serving option by @njbrake in #606
  • Update .gitignore by @njbrake in #617
  • feat: smolagents support timeout parameter by @njbrake in #619
  • feat(tracing): Add any_agent/tracing/attributes. by @daavoo in #614
  • fix: consistent prompts and simplification of structured output prompt by @njbrake in #621
  • Wrap structured output calls for langchain and tinyagent by @njbrake in #622
  • chore: update trace assets by @njbrake in #625
  • docs: more mkdocs features by @njbrake in #615
  • pre-commit autoupdate by @github-actions[bot] in #627

Full Changelog: 0.24.0...0.25.0

0.24.0

04 Jul 08:50
acdc357
Compare
Choose a tag to compare

Breaking Change 💣 feat(agent_judge): Return the evaluation trace instead of only the fi… by @daavoo in #576

Allows to access the full evaluation trace for further inspection (i.e. retrieve the cost of the evaluation run).
The previous output can still be accessed in the final_output property:

Before After
from any_agent.evaluation import AgentJudge
from any_agent.evaluation.schemas import EvaluationOutput

agent_judge = AgentJudge(model_id="gpt-4.1-mini")

result: EvaluationOutput = agent_judge.run(
    agent_trace, criteria)
from any_agent import AgentTrace
from any_agent.evaluation import AgentJudge
from any_agent.evaluation.schemas import EvaluationOutput

agent_judge = AgentJudge(model_id="gpt-4.1-mini")

eval_trace: AgentTrace = agent_judge.run(
   agent_trace, criteria)

result: EvaluationOutput = eval_trace.final_output

📖 Initial docs for MCP serving usage by @javiermtorres in #544

https://mozilla-ai.github.io/any-agent/serving/#serving-via-mcp

📖 Add documentation showing how to use agents as tools by @javiermtorres in #557

https://mozilla-ai.github.io/any-agent/agents/tools/#using-an-agent-as-a-tool

📖 docs(tracing): Document CostInfo and TokenUse. by @daavoo in #553

https://mozilla-ai.github.io/any-agent/api/tracing/#any_agent.tracing.agent_trace.AgentTrace.cost
https://mozilla-ai.github.io/any-agent/api/tracing/#any_agent.tracing.agent_trace.AgentTrace.tokens


Other changes

Full Changelog: 0.23.1...0.24.0

0.23.1

30 Jun 15:40
c430126
Compare
Choose a tag to compare

What's Changed

  • fix: a2a multiturn avoid repeating context by @njbrake in #542
  • chore(deps): Bump "smolagents[mcp]>=1.19.0" by @daavoo in #548
  • Run Cookbook Tests in pytest, in parallel by @njbrake in #549

Full Changelog: 0.23.0...0.23.1

0.23.0

30 Jun 12:26
31ad2c5
Compare
Choose a tag to compare

This release of any-agent contains an improvement to async server handling, an update to maintain compatibility with the newest version of the OpenAI Agents SDK, and some miscellaneous bug fixes. Enjoy!

Breaking Changes

calling agent.serve_async() now returns a ServerHandle object for easier management of async server lifecycle! You can see the new API at https://mozilla-ai.github.io/any-agent/api/serving/

What's Changed

  • fix(docs): Add evaluation to nav and fix missing link. by @daavoo in #527
  • Pin Agno by @njbrake in #535
  • fix: need to create uuid by calling it by @njbrake in #540
  • chore: Split A2A Serving and MCP serving into separate directories by @njbrake in #539
  • Fix OpenAI breaking change by @njbrake in #547
  • feat: Refactor server handling in A2A and MCP serving by @njbrake in #538

Full Changelog: 0.22.0...0.23.0

0.22.0

25 Jun 14:54
7303b26
Compare
Choose a tag to compare

What's new

  • This release introduces the concept o AgentJudge as well as LlmJudge: easily evaluate your agent using an Agent-as-a-judge or LLM-as-a-judge! Check out the detailed description at https://mozilla-ai.github.io/any-agent/evaluation.

  • We also include prelminary support for serving your agent via MCP: full documentation and examples will be coming soon, tracked by #525

Breaking Changes

In this release, we introduce a major overhaul and simplification of our evaluation code. This is a breaking change from our previous API: please see the docs at https://mozilla-ai.github.io/any-agent/evaluation/ for a detailed description of how to use the new evaluation primitives.

What's Changed

  • tests: Run more env variations. by @daavoo in #509
  • feat: cleanup the output format of the A2A tool response by @njbrake in #504
  • feat(evaluation): Add unique ID validation for checkpoints by @njbrake in #505
  • fix: run mypy on tests, fix mypy errors by @njbrake in #512
  • Initial otel cookbook by @javiermtorres in #499
  • fix(smolagents): Use ChatMessage in _set_llm_input. by @daavoo in #517
  • Remove OTEL cookbook by @javiermtorres in #518
  • feat: clean up and implement AgentJudge and LlmJudge evaluation primitives by @njbrake in #507
  • fix: rename tracetool get_steps_taken by @njbrake in #521
  • MCP serving by @javiermtorres in #469
  • fix: enhance AgentRunError to be readable and include original exception details by @njbrake in #522
  • feat: Organize Integration tests, consolidate a2a logic, simplify and clarify naming by @njbrake in #516

Full Changelog: 0.21.1...0.22.0

0.21.1

20 Jun 10:20
b41a439
Compare
Choose a tag to compare

What's Changed

  • fix: only import optional dep agents when used by @njbrake in #508

Full Changelog: 0.21.0...0.21.1

0.21.0

19 Jun 14:19
0cec099
Compare
Choose a tag to compare

New Features

With version 0.21.0, we are excited to release support for multi-turn conversations in A2A! Using either an A2A Client or another agent, you can now have multiturn conversations with an agent. We don't yet have a cookbook available, but we have two comprehensive tests that are useful to understand how to build one yourself.

Check out file https://github.com/mozilla-ai/any-agent/blob/0.21.0/tests/integration/test_multiturn.py
Example of multiturn conversation using an A2AClient -> test_task_management_multi_turn_conversation
Example of multiturn conversation between two agents -> test_multi_turn_a2a_tool

What's Changed

  • chore(deps): bump a2a-sdk from 0.2.6 to 0.2.8 by @dependabot in #483
  • remove unused pytest asyncio mark by @njbrake in #485
  • Address pydantic deprecation warning by @njbrake in #484
  • feat(agent): Enhance final output handling with retry logic and JSON validation by @njbrake in #487
  • feat(agent): Improve multi-turn functionality to running an agent by @njbrake in #468
  • pre-commit autoupdate by @github-actions in #495
  • Make any_agent.version attribute available by @HareeshBahuleyan in #491
  • Include exception info on docs by @javiermtorres in #489
  • feat(agent): A2A Served Agent Support for Multi-Turn by @njbrake in #494
  • feat(agent): Agent is allowed to have multiturn conversation with another agent by @njbrake in #498
  • fix(mcp/google): Update imports. by @daavoo in #501
  • Improve reliability of a2a tool integration tests by @njbrake in #503

Full Changelog: 0.20.0...0.21.0

0.20.0

16 Jun 08:42
Compare
Choose a tag to compare

Breaking changes 💣

  • feat(tools): Wrap tool calls to catch exceptions by @daavoo in #463

    Exceptions raised during tool calls will now be consistently catched and returned as a string with the error description.
    This allows the Agent to try to recover from the tool failure (hoping that the exception provides some clear guidance on what went wrong).

What's Changed

  • fix(tools): Drop outdated wrap in smolagents. by @daavoo in #464
  • chore(tests): Remove reliance on ANY_AGENT_INTEGRATION_TESTS env by @njbrake in #466
  • refactor(tests): No logs generated by tests by @njbrake in #465
  • A2A Server passes back a task instead of a Message by @njbrake in #458
  • fix(instrumentation/google): Properly uninstrument when original call… by @daavoo in #476
  • Enable test_no_instrument. by @daavoo in #477
  • refactor(tracing): Rename cache invalidation methods for clarity by @njbrake in #473
  • bugfix: add default timeout for requests by @njbrake in #478
  • refactor(agent): Simplify run_async and fix linting errors by @njbrake in #474
  • tests: Use nano instead of mini. by @daavoo in #479
  • feat(agent): Add async config recreation methods and enhance agent pr… by @njbrake in #480
  • tests: Use output_type in test_load_and_run_agent.py. by @daavoo in #481

Full Changelog: 0.19.1...0.20.0

0.19.1

11 Jun 15:33
5dd938c
Compare
Choose a tag to compare

What's Changed

Full Changelog: 0.19.0...0.19.1

0.19.0

10 Jun 10:57
Compare
Choose a tag to compare

Breaking changes 💣

What's Changed

  • Use an Agent as a tool via A2A Cookbook by @njbrake in #392
  • refactor: Rename _main_agent_tools to _tools by @njbrake in #407
  • Fix issues in A2A integration tests by @javiermtorres in #384
  • 408 A2A agentskills should be configurable by @njbrake in #429
  • Add workflow step to check jupyter notebooks by @javiermtorres in #428
  • Pin frozenlist by @njbrake in #433
  • pre-commit autoupdate by @github-actions in #434
  • Sync A2A Tool by @njbrake in #431
  • feat: All frameworks support structured outputs, and new configuration parameter output_type enables custom Pydantic agent output schemas by @njbrake in #420
  • fix(llama_index): Don't set allowed_tools to empty list. by @daavoo in #444
  • Dynamic port assignment in async tests by @javiermtorres in #442
  • Updates for a2a-python>=0.2.6 by @daavoo in #455
  • chore: unpin frozenlist by @njbrake in #454

Full Changelog: 0.18.3...0.19.0