Commit graph

166 commits

Author SHA1 Message Date
Martín Bravo
53367be893 feat: add visualization module for agent graphs using Graphviz 2025-03-18 09:55:30 +01:00
Martín Bravo
c745fe156a feat: add documentation for agent visualization using Graphviz 2025-03-18 09:55:23 +01:00
Martín Bravo
6f2f7293a0 refactor: move graphviz dependency to visualization section 2025-03-18 09:53:53 +01:00
Martín Bravo
f7c594da08 feat: add visualization functions for agent graphs 2025-03-18 09:53:48 +01:00
Martín Bravo
aff1d60ea1 Merge branch 'main' of https://github.com/openai/openai-agents-python into feat/draw_graph 2025-03-17 23:50:52 +01:00
Dmitry Pimenov
fe6bb8c8ab
Docs: update readme text to clarify handoffs (#208)
Clarifying that the handoff abstraction is implemented via Responses
tool calling
2025-03-17 15:15:13 -07:00
Dmitry Pimenov
a43cf1542b clarifying that handoffs are a type of tool call under the hood 2025-03-17 15:05:15 -07:00
Rohan Mehta
3a97b15b89
Stronger tracing tests with inline-snapshot (#25)
`assert len(spans) == 12` is a very weak assertion. This PR asserts the
exported traces and spans more precisely in a readable tree format. And
when the format of an exported trace/span changes (e.g. a new key is
added to every span), you can use `pytest --inline-snapshot=fix` to
update all relevant tests automatically. See
https://15r10nk.github.io/inline-snapshot/latest/ for more info.
2025-03-17 17:59:04 -04:00
Alex Hall
7eb2bcee15 mypy 2025-03-17 23:56:42 +02:00
Alex Hall
2d2e8f0e34 Merge branch 'main' of github.com:openai/openai-agents-python into alex/inline-snapshot 2025-03-17 23:55:56 +02:00
Rohan Mehta
d0a7b00086
Fix typo on Agent documentation (#151)
Argument name is not description but handoff_description
2025-03-17 16:51:47 -04:00
Carlos Souza
64150c8aea Fix lint 2025-03-17 16:14:28 -04:00
Rohan Mehta
2bff04719b
Fix handoffs example use cases (#156)
## Changes
- In this handoff example, we need to use `first_agent` with
`random_number_tool`, instead of `second_agent` without that tool, since
the user is asking to generate a random number.
- fixed typo in comments
2025-03-17 15:59:18 -04:00
Rohan Mehta
fad23f1a3d
fix typo in agent_lifecycle_example.py (#161) 2025-03-17 15:59:00 -04:00
Rohan Mehta
82136d7439
docs: add arize-phoenix to tracing documentation (#169) 2025-03-17 15:58:28 -04:00
Rohan Mehta
a612e6a090
docs: List LangSmith tracing integration (#197)
LangChain employee/maintainer, happy to make edits to our
docs/integrations if needed.
2025-03-17 15:58:20 -04:00
Rohan Mehta
83ec26d200
fix reasoning order in examples (#186)
I think we need to put reasoning-related outputs first to encourage CoT
reasoning.
2025-03-17 15:57:52 -04:00
Rohan Mehta
0989cd9184
Add TracingProcessor export to __init__.py (#192)
# Summary
This adds the missing TracingProcessor export to  __init__.py.

# Behavior
When trying to add a custom tracing processor, the TracingProcessor
importing fails with not found error when trying the example usage
proposed in issue #164

Specifically this line throws the error:
`add_trace_processor(MyTracingProcessor("output"))`

# Expected Behavior
Inspecting the init file, simply the import/export was missing. Adding
these made the example code work for me

# Test plan
Local dev of example code in #164

# Issue number
#164

# Checks
None
2025-03-17 15:39:04 -04:00
Dmitry Pimenov
a8390350ab
Update tracing docs (#204)
Update the README to point to the list of tracing processors. The docs
will contain all the external processors, so the readme doesn't get too
long.
2025-03-17 12:02:44 -07:00
Rohan Mehta
1368e7ffe6 Update tracing docs 2025-03-17 14:57:43 -04:00
Rohan Mehta
b09a5bfc43
Create a utils directory (#195)
Moves utils files into a separate directory so we don't end up with a
massive utils file

---
[//]: # (BEGIN SAPLING FOOTER)
* #196
* __->__ #195
2025-03-17 14:26:49 -04:00
Rohan Mehta
63aa5d10fd
Pretty print result classes (#196)
These classes print a really long, unreadable output by default. This
trims it to the main useful info (i.e. output, last agent, overview of
run).

---
[//]: # (BEGIN SAPLING FOOTER)
* __->__ #196
* #195
2025-03-17 14:26:43 -04:00
Rohan Mehta
dd651ce8e7
Add ZDR callout in tracing docs (#199)
Add callout for ZDR intracing
2025-03-17 14:26:34 -04:00
James Hills
370a748bcc
Update tracing.md
Add callout for ZDR intracing
2025-03-17 09:13:22 -07:00
Bagatur
4ebf0742f1 docs: List LangSmith tracing integration 2025-03-17 08:47:28 -07:00
Rohan Mehta
64e263b614 Pretty print result classes 2025-03-17 11:11:39 -04:00
Vincenzo Domina
1f58528f1c
Add TracingProcessor export to __init__.py 2025-03-17 10:37:43 +01:00
MartinEBravo
e984274da1 Merge branch 'main' of https://github.com/openai/openai-agents-python into feat/draw_graph 2025-03-17 10:17:36 +01:00
heartkilla
54a48a3967 fix reasoning order in examples 2025-03-17 14:56:43 +09:00
Rohan Mehta
09d70c074d utils directory 2025-03-16 18:48:45 -04:00
Rohan Mehta
951193bd21
feat: Add strict_mode option to function_schema and function_tool (#60)
This PR introduces a `strict_mode: bool = True` option to
`@function_tool`, allowing optional parameters when set to False. This
change enables more flexibility while maintaining strict JSON schema
validation by default.

resolves #43 

## Changes:

- Added `strict_mode` parameter to `@function_tool` and passed it to
`function_schema` and `FunctionTool`.
- Updated `function_schema.py` to respect `strict_mode` and allow
optional parameters when set to False.
- Added unit tests to verify optional parameters work correctly,
including multiple optional params with different types.

## Tests:

- Verified function calls with missing optional parameters behave as
expected.
- Added async tests to validate behavior under different configurations.
2025-03-16 17:43:46 -04:00
Alexander Song
f0ef7d71eb docs: add arize-phoenix to tracing documentation 2025-03-14 17:50:10 -07:00
Alex Hall
4d2fa9d91c Merge branch 'main' of github.com:openai/openai-agents-python into alex/inline-snapshot 2025-03-14 14:16:34 +02:00
CCM
8540b1e65b
fix typo in agent_lifecycle_example.py 2025-03-14 19:14:26 +08:00
Kento Yamanaka
792cdea464 fix: use first_agent instead of second_agent for a task to generate random number 2025-03-13 18:26:49 -07:00
Carlos Souza
26828e5e68
Fix typo on Agent documentation
Argument name is not description but handoff_description
2025-03-13 16:18:40 -04:00
Rohan Mehta
cdbf6b0514
Create model_provider.md 2025-03-13 14:43:14 -04:00
Rohan Mehta
7f68a7da2a
Consolidate to one logger (#149)
Results in double logging if we dont. Closes #141.
2025-03-13 11:38:18 -07:00
Rohan Mehta
697f647e4c
Update tracing docs to be correct (#146)
Incorrect docs. Closes #121
2025-03-13 10:55:57 -07:00
Rohan Mehta
17f0a425ba Consolidate to one logger 2025-03-13 13:55:15 -04:00
Rohan Mehta
e7c80ec208
Update model docs with common issues (#148)
These are common issues faced by devs, so adding docs to help.
2025-03-13 10:53:50 -07:00
Martín Bravo
29e9983ae8 Linting 2025-03-13 18:49:12 +01:00
Martín Bravo
2993d26d58 Add documentation and example for agent visualization using Graphviz 2025-03-13 18:48:12 +01:00
Rohan Mehta
8a6967b6d4 Update model docs with common issues 2025-03-13 13:43:18 -04:00
Martín Bravo
9b972b33fa Add unit tests for visualization functions in test_visualizations.py 2025-03-13 18:33:17 +01:00
Martín Bravo
cecdcd0af4 Add visualization functions for agents using Graphviz 2025-03-13 18:33:12 +01:00
Martín Bravo
5865c6fbde Add graphviz as a dependency in pyproject.toml 2025-03-13 18:33:08 +01:00
Rohan Mehta
4db24bdb3c Update tracing docs to be correct 2025-03-13 13:20:27 -04:00
Rohan Mehta
e069279801
Update custom models to use tools (#144) 2025-03-13 10:12:28 -07:00
Rohan Mehta
6ab8c91d23 Update custom models to use tools 2025-03-13 13:10:26 -04:00