54 Commits

Author SHA1 Message Date
afourney
84c622a4cc
Fixes an error that can occur when listing the contents of a directory. (#5938)
Fixes issues like the following trace:

```
packages/autogen_ext/agents/file_surfer/_markdown_file_browser.py", line 39, in __init__
    self.set_path(self._base_path)
  File "/home/hmozannar/webby/.venv/lib/python3.12/site-packages/autogen_ext/agents/file_surfer/_markdown_file_browser.py", line 67, in set_path
    self._open_path(path)
  File "/home/hmozannar/webby/.venv/lib/python3.12/site-packages/autogen_ext/agents/file_surfer/_markdown_file_browser.py", line 210, in _open_path
    io.StringIO(self._fetch_local_dir(path)), file_extension=".txt"
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hmozannar/webby/.venv/lib/python3.12/site-packages/autogen_ext/agents/file_surfer/_markdown_file_browser.py", line 248, in _fetch_local_dir
    mtime = datetime.datetime.fromtimestamp(os.path.getmtime(full_path)).strftime("%Y-%m-%d %H:%M")
                                            ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen genericpath>", line 67, in getmtime
PermissionError: [Errno 13] Permission denied: '/home/hmozannar/webby/autogen-studio/frontend/readme.txt'
```
2025-03-13 20:40:30 -07:00
afourney
aefa66a3ce
Update MarkItDown. (#5920)
Update FileSurfer and WebSurfer to use the latest MarkItDown package.
2025-03-12 21:17:25 -07:00
Hussein Mozannar
7d17b22925
Add an optional base path to FileSurfer (#5886)
This pull request introduces a new feature to the `FileSurfer` agent and
`MarkdownFileBrowser` by adding support for specifying a base path for
file browsing.

*
`python/packages/autogen-ext/src/autogen_ext/agents/file_surfer/_file_surfer.py`:
* Added `base_path` parameter to `FileSurfer` class and its
initialization method, with a default value of the current working
directory (`os.getcwd()`).
[[1]](diffhunk://#diff-084847b5e64c659c9aff0bd2d05bbcd0fff2c819a4b91bbe65fa0566054c0972R58)
[[2]](diffhunk://#diff-084847b5e64c659c9aff0bd2d05bbcd0fff2c819a4b91bbe65fa0566054c0972R80-R85)
* Updated `MarkdownFileBrowser` initialization within `FileSurfer` to
use the `base_path` parameter.

*
`python/packages/autogen-ext/src/autogen_ext/agents/file_surfer/_markdown_file_browser.py`:
* Added `base_path` parameter to `MarkdownFileBrowser` class and its
initialization method, with a default value of the current working
directory (`os.getcwd()`).
* Updated `MarkdownFileBrowser` to use the `base_path` for setting the
initial path and returning the current page path.
2025-03-09 20:33:18 -07:00
afourney
8f737de0e1
Add client close (#5871)
Fixes #4821 by adding a `close()` method to all clients.

Additionally:
* The m1 CLI is updated to close the client before exiting.
* The playwrightcontroller is updated to suppress some other unrelated
chatty warnings (e.g,, produced by markitdown when encountering
conversions that require external utilities)
2025-03-07 14:10:06 -08:00
Leonardo Pinheiro
906b09e451
fix: Update SKChatCompletionAdapter message conversion (#5749)
<!-- Thank you for your contribution! Please review
https://microsoft.github.io/autogen/docs/Contribute before opening a
pull request. -->

<!-- Please add a reviewer to the assignee section when you create a PR.
If you don't have the access to it, we will shortly find a reviewer and
assign them to your PR. -->

## Why are these changes needed?

<!-- Please give a short summary of the change and the problem this
solves. -->

The PR introduces two changes.

The first change is adding a name attribute to
`FunctionExecutionResult`. The motivation is that semantic kernel
requires it for their function result interface and it seemed like a
easy modification as `FunctionExecutionResult` is always created in the
context of a `FunctionCall` which will contain the name. I'm unsure if
there was a motivation to keep it out but this change makes it easier to
trace which tool the result refers to and also increases api
compatibility with SK.

The second change is an update to how messages are mapped from autogen
to semantic kernel, which includes an update/fix in the processing of
function results.

## Related issue number

<!-- For example: "Closes #1234" -->

Related to #5675 but wont fix the underlying issue of anthropic
requiring tools during AssistantAgent reflection.

## Checks

- [ ] I've included any doc changes needed for
<https://microsoft.github.io/autogen/>. See
<https://github.com/microsoft/autogen/blob/main/CONTRIBUTING.md> to
build and test documentation locally.
- [ ] I've added tests (if relevant) corresponding to the changes
introduced in this PR.
- [ ] I've made sure all auto checks have passed.

---------

Co-authored-by: Leonardo Pinheiro <lpinheiro@microsoft.com>
2025-03-03 23:05:54 +00:00
Victor Dibia
b8b13935c9
Make FileSurfer and CodeExecAgent Declarative (#5765)
<!-- Thank you for your contribution! Please review
https://microsoft.github.io/autogen/docs/Contribute before opening a
pull request. -->

<!-- Please add a reviewer to the assignee section when you create a PR.
If you don't have the access to it, we will shortly find a reviewer and
assign them to your PR. -->

## Why are these changes needed?

Make FileSurfer and CodeExecAgent Declarative.
These agent presents are used as part of magentic one and having them
declarative is a precursor to their use in AGS.

<!-- Please give a short summary of the change and the problem this
solves. -->

## Related issue number

<!-- For example: "Closes #1234" -->
Closes #5607

## Checks

- [ ] I've included any doc changes needed for
<https://microsoft.github.io/autogen/>. See
<https://github.com/microsoft/autogen/blob/main/CONTRIBUTING.md> to
build and test documentation locally.
- [ ] I've added tests (if relevant) corresponding to the changes
introduced in this PR.
- [ ] I've made sure all auto checks have passed.
2025-03-01 15:46:30 +00:00
Eric Zhu
54681b2aec
fix: Add warning and doc for Windows event loop policy to avoid subprocess issues in web surfer and local executor (#5557) 2025-02-14 18:59:52 -08:00
wistuba
7a772a2fcd
feat: add indictor for tool failure to FunctionExecutionResult (#5428)
Some LLMs recieve an explicit signal about tool use failures. 

Closes #5273

Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
2025-02-09 21:57:50 -08:00
afourney
3c30d8961e
Prompting changes to better support smaller models. (#5386)
A series of changes to the
`python/packages/autogen-ext/src/autogen_ext/agents/web_surfer/_multimodal_web_surfer.py`
file have been made to better support smaller models.

This includes changes to the prompts, state descriptions, and ordering
of messages.

Regression tasks with OpenAI models shows no change in GAIA scores,
while scores for Llama are significantly improved.
2025-02-06 17:47:55 -08:00
afourney
cf798aef3f
Various web surfer fixes. (#5393)
This PR fixes:

A prompting bug when no control had focus.
Awkward prompt phrasing.
Renamed page_down to scroll_down to better match other prompting and
agent descriptions.
2025-02-05 22:17:18 -08:00
afourney
ac74305913
Ensure decriptions appear each on one line. Fix web_surfer's desc (#5390)
Some agent descriptions were split over multiple lines in the M1
orchestrator. This PR ensures that each description appears on one, and
only one, line. This makes it easier for smaller models to understand.
2025-02-05 20:17:24 -08:00
afourney
d86540e9cd
Fix summarize_page in a text-only context, and for unknown models. (#5388)
WebSurfer's summarize_page was failing when the model was text-only, or
unknown.
2025-02-06 00:57:46 +00:00
Leonardo Pinheiro
5c969d3f10
fix: add state management for oai assistant (#5352)
<!-- Thank you for your contribution! Please review
https://microsoft.github.io/autogen/docs/Contribute before opening a
pull request. -->

<!-- Please add a reviewer to the assignee section when you create a PR.
If you don't have the access to it, we will shortly find a reviewer and
assign them to your PR. -->

## Why are these changes needed?

<!-- Please give a short summary of the change and the problem this
solves. -->

To allow serialization of OAI Assistant Agent.

## Related issue number

<!-- For example: "Closes #1234" -->

Closes #5130 

## Checks

- [ ] I've included any doc changes needed for
https://microsoft.github.io/autogen/. See
https://microsoft.github.io/autogen/docs/Contribute#documentation to
build and test documentation locally.
- [ ] I've added tests (if relevant) corresponding to the changes
introduced in this PR.
- [ ] I've made sure all auto checks have passed.
2025-02-04 21:56:30 +00:00
afourney
cf6fa77273
Add text-only model support to M1 (#5344)
Modify M1 agents to support text-only settings.
This allows M1 to be used with models like o3-mini and Llama3.1+
2025-02-04 08:25:48 -08:00
afourney
877796ded1
WebSurfer: print viewport text (#5329)
This PR adds a method that approximately extracts the text visible in
the viewport of the web browser (as opposed to always printing the first
50 lines, or relying entirely on OCR).
2025-02-03 11:42:18 -05:00
Eric Zhu
756e2a4865
feat: update OpenAIAssistantAgent to support AsyncAzureOpenAI client (#5312)
Resolves #5179
2025-01-31 16:09:11 -08:00
afourney
aa23093f36
Adjusted M1 agent system prompt to remove TERMINATE (#5263)
Removed the TERMINATE clause from the system prompt since M1 handles
termination via the Orchestrator, and it is just ignored.

Removed the clause about saving to a particular file name, since tmp_
files are created in the current CodeExecutors.
2025-01-30 08:14:55 -08:00
Victor Dibia
67029853ec
make AssistantAgent and Handoff use BaseTool (#5193)
<!-- Thank you for your contribution! Please review
https://microsoft.github.io/autogen/docs/Contribute before opening a
pull request. -->

<!-- Please add a reviewer to the assignee section when you create a PR.
If you don't have the access to it, we will shortly find a reviewer and
assign them to your PR. -->

## Why are these changes needed?

Make AssistantAgent and Handoff use BaseTool.  
This ensures that they can be made declarative/serialized

<!-- Please give a short summary of the change and the problem this
solves. -->

## Related issue number

<!-- For example: "Closes #1234" -->

## Checks

- [ ] I've included any doc changes needed for
https://microsoft.github.io/autogen/. See
https://microsoft.github.io/autogen/docs/Contribute#documentation to
build and test documentation locally.
- [ ] I've added tests (if relevant) corresponding to the changes
introduced in this PR.
- [ ] I've made sure all auto checks have passed.
2025-01-25 12:04:05 -08:00
Victor Dibia
c2a43e84a2
Declarative BaseChat Agents (#5055)
* v1, make assistant agent declarative

* make head tail context declarative

* update and formatting

* update assistant, format updates

* make websurfer declarative

* update formatting

* move declarative docs to advanced section

* remove tools until implemented

* minor updates to termination conditions

* update docs
2025-01-16 22:29:40 -08:00
Eric Zhu
001f0262ba
Minor API doc update for openai assistant agent (#4986) 2025-01-10 18:08:30 +10:00
Jack Gerrits
c2721ff65b
Update all versions to 0.4.0 (#4941)
* Update all versions to 0.4.0

* update redirect

* install with upgrade for agentchat
2025-01-09 15:29:54 -05:00
Jack Gerrits
0122d44aa3
OpenAI assistant fixes (#4969) 2025-01-09 12:06:01 -08:00
Eric Zhu
16ceded2d2
Minor fix for incorrect description of teams and add installation instructions for ext agents (#4872)
* Minor fix for incorrect description of teams

* Add installation instructions

---------

Co-authored-by: Jack Gerrits <jackgerrits@users.noreply.github.com>
2025-01-02 10:11:13 -05:00
Jack Gerrits
cb1633b501
feat!: Add support for model family specification (#4856)
* Add support for model family specification

* spelling mistake

* lint, etc

* fixes
2024-12-30 15:09:21 -05:00
Eric Zhu
5ee2190e00
Replace Tuple[type[ChatMessage], ...] with Sequence[type[ChatMessage]] (#4857) 2024-12-30 11:30:31 -08:00
gagb
d2537abbab
Add MagenticOne API and CLI (#4782)
* Add MagenticOne API

* Add CodeExecutorAgent to MagenticOne for enhanced task execution

* Refactor MagenticOne class to inherit from MagenticOneGroupChat and streamline initialization

* Enhance MagenticOne class documentation with detailed usage examples and initialization instructions

* Refactor MagenticOne module structure and update import paths

* Remove unused imports

* Add documentation for MagenticOne module and remove redundant initialization comments

* Enhance MagenticOne class with human-in-the-loop mode and update examples

* Update MagenticOne class documentation with safety precautions and architecture details

* Run poe format

* Add blog post reference to MagenticOne class documentation

* change default of websurfer use_ocr to false because of refusals

* Refactor MagenticOne class to use ChatCompletionClient instead of OpenAIChatCompletionClient

* Add client capability validation to MagenticOne initialization

* Poe format

* Refactor imports in MagenticOne class for clarity and organization

* Add stacklevel parameter to warning in client capability validation

* Update README to recommend using Magentic-One API for improved integration

* Add create_args property to OpenAIChatCompletionClient for better access to initialization arguments

* Enhance client capability validation in MagenticOne to ensure compatibility with OpenAI GPT-4o model

* Refactor client capability validation in MagenticOne for improved clarity

* Update magentic_one.py

Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>

* Remove create_args property from OpenAIChatCompletionClient and update validation logic in MagenticOne to directly access _create_args

* Refactor documentation in MagenticOne for improved readability and consistency

* Refactor client capability validation in MagenticOne to remove unnecessary model check for GPT-4o

* Add MagenticOne CLI (#4788)

* Add MagenticOne CLI script for task execution with OpenAI GPT-4o integration

* Fix argument parsing in MagenticOne CLI to require a single task input

* Add docstring to main function in MagenticOne CLI for improved usage clarity

* Fix example usage in docstring of MagenticOne CLI for correct argument order

* Refactor argument parsing in MagenticOne CLI for improved clarity and consistency

* Add type hints to run_task function in MagenticOne CLI

* Add type hint for main function in MagenticOne CLI

* Remove type ignore from main function call in MagenticOne CLI

---------

Co-authored-by: Hussein Mozannar <hmozannar@microsoft.com>
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
2024-12-23 16:45:21 -08:00
Eric Zhu
150a54c4f5
Refine types in agentchat (#4802)
* Refine types in agentchat

* importg

* fix mypy
2024-12-23 16:10:46 -08:00
Jack Gerrits
453fe0cafd
Replace single quotes with double quotes (#4760)
* Replace single quotes with double quotes

* Fix version

* formatting
2024-12-19 14:21:51 -05:00
Victor Dibia
4e3a70303d
Add Deploy view in AGS (#4756)
* update version, fix component factory bug

* add basic structure for deploy

* minor fixes, deploy v1

* minor text updated

* format fixes

* formatting fixes .. webby test samples

* update cli command, update views,

* packakge.json and other fixes

* format fixes
2024-12-18 18:57:11 -08:00
Eric Zhu
e902e94b14
Define AgentEvent, rename tool call messages to events. (#4750)
* Define AgentEvent, rename tool call messages to events.

* update doc

* Use AgentEvent | ChatMessage to replace AgentMessage

* Update docs

* update deprecation notice

* remove unused

* fix doc

* format
2024-12-18 14:09:19 -08:00
Hussein Mozannar
7d0f485bd2
WebSurfer add close method (#4727)
* fix finicky websurfer test

* add close method

* update default to not download or debug

* enable closing agents in team_manager

---------

Co-authored-by: Victor Dibia <victor.dibia@gmail.com>
2024-12-16 18:51:52 -08:00
Hussein Mozannar
b9d682c0a1
WebSurfer Documentation and Fixes (#4624)
* fixes remake
* modified toml adding tests
* playwright tests
* tests websurfer
---------

Co-authored-by: Ryan Sweet <rysweet@microsoft.com>
2024-12-12 14:42:40 -08:00
Leonardo Pinheiro
253fe216fd
Add models.openai and tools.langchain namespaces (#4601)
* add models.openai namespace

* refactor tools namespace

* update lock file

* revert pyproject changes

* update docs and add cast

* update ext models doc ref

* increase underline

* add reply models namespace

* update imports

* fix test

* linting

* fix missing conflicts

* revert pydantic changes

* rename to replay

* replay

* fix reply

* Fix test

* formatting

* example

---------

Co-authored-by: Leonardo Pinheiro <lpinheiro@microsoft.com>
Co-authored-by: Jack Gerrits <jack@jackgerrits.com>
Co-authored-by: Jack Gerrits <jackgerrits@users.noreply.github.com>
2024-12-09 19:18:09 -08:00
Jack Gerrits
218e84fd8e
Migrate remaining components (#4626) 2024-12-09 18:39:07 -08:00
Jack Gerrits
87011ae01b
Migrate model context and models modules out of components (#4613)
* Move model context out of components

* move models out of components

* rename docs file
2024-12-09 10:00:08 -08:00
Eric Zhu
8dac072658
Update references in docs (#4590)
* Update agent doc

* Remove outdated doc

* Update references

* Update readme

* Update readme
2024-12-06 01:59:28 -08:00
Leonardo Pinheiro
5f61ba0c2f
Refactor autogen ext agents namespace (#4582)
* move magentic and openai assistant agents

* add import error messages

* add api docs ref files

* fix magentic rst path

* fix openai rst fname

* fix magentic rst title

* Add module

* rm

* fix some minor issues

---------

Co-authored-by: Leonardo Pinheiro <lpinheiro@microsoft.com>
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
2024-12-05 23:41:13 -08:00
Victor Dibia
777f2abbd7
Load and Save state in AgentChat (#4436)
1. convert dataclass types to pydantic basemodel 
2. add save_state and load_state for ChatAgent
3. state types for AgentChat
---------

Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
2024-12-04 16:14:41 -08:00
afourney
fef06fdc8a
Fixed messages missing from websurfer history. (#4551)
* Fixed messages missing from websurfer history.
* Fix filesurfer too!
2024-12-04 15:13:48 -08:00
gagb
abb0a77f92
VideoSurferAgent -> VideoSurfer (#4521) 2024-12-03 18:43:05 -08:00
Jack Gerrits
3022369eeb
Flatten core base and components (#4513)
* Flatten core base and components

* remove extra files

* dont export from deprecated locations

* format

* fmt
2024-12-03 17:00:44 -08:00
afourney
31cb50bce9
Added the coder used by MagenticOne. (#4511)
* Added the coder used by MagenticOne.

* Fixed formatting.

---------

Co-authored-by: gagb <gagb@users.noreply.github.com>
2024-12-03 16:08:18 -08:00
Eric Zhu
32aa452af8
Remove autogen_agentchat.tasks, create autogen_agentchat.ui and autogen_agentchat.conditions (#4512) 2024-12-03 15:24:25 -08:00
afourney
5235bbc0d6
FileSurfer in AgentChat (#4360)
* Added an implementation of FileSurfer to AgentChat
2024-12-03 12:14:47 -08:00
Leonardo Pinheiro
1f90dc5ea9
Update OpenAI Assistante Agent on_reset (#4423)
* update reset and imports

* add missing imports

* update lock file

---------

Co-authored-by: Leonardo Pinheiro <lpinheiro@microsoft.com>
2024-12-02 15:48:18 +10:00
gagb
b1e40017c3
Fix client mismatch in video surfer and its tools (#4431)
* Add initial code

* Update and add readme

* Update

* update readme

* Refine action space

* Add tutorial

* Improve doc string

* Improve doc string

* Remove readme

* Update toml

* Update assignment

* Expose the tools

* Update pyproject toml

* Improve docs

* remove assignment'

* Run poe format

* Update uv lock

* Fix mypy errors

* Fix linting errors

* poe format

* run checks

* Updaye

* Rename submodule

* Improve documentation

* Use same model client in video surfer

* Use same model client in video surfer

* Update uv lock

---------

Co-authored-by: Mohammad Mazraeh <Mazraeh.Mohammad@Gmail.com>
Co-authored-by: Ryan Sweet <rysweet@microsoft.com>
2024-11-29 16:27:30 -08:00
gagb
b6a7d56844
Adds Video Surfer to autogen_ext (#4387)
* Add initial code

* Update and add readme

* Update

* update readme

* Refine action space

* Add tutorial

* Improve doc string

* Improve doc string

* Remove readme

* Update toml

* Update assignment

* Expose the tools

* Update pyproject toml

* Improve docs

* remove assignment'

* Run poe format

* Update uv lock

* Fix mypy errors

* Fix linting errors

* poe format

* run checks

* Updaye

* Rename submodule

* Improve documentation

---------

Co-authored-by: Mohammad Mazraeh <Mazraeh.Mohammad@Gmail.com>
Co-authored-by: Ryan Sweet <rysweet@microsoft.com>
2024-11-29 14:41:23 -08:00
Jack Gerrits
6c8b656588
Fix examples in docstrings (#4356)
* Fix examples in docstrings

* formatting

* Update python/packages/autogen-ext/src/autogen_ext/models/_reply_chat_completion_client.py

Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>

* Update python/packages/autogen-ext/src/autogen_ext/models/_reply_chat_completion_client.py

Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>

* Update python/packages/autogen-ext/src/autogen_ext/agents/_openai_assistant_agent.py

Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>

* Update python/packages/autogen-ext/src/autogen_ext/agents/_openai_assistant_agent.py

Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>

* Update python/packages/autogen-ext/src/autogen_ext/models/_reply_chat_completion_client.py

Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>

* Update python/packages/autogen-ext/src/autogen_ext/models/_reply_chat_completion_client.py

Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>

* Formattinggp

---------

Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
2024-11-25 16:07:45 -05:00
Eric Zhu
2b7658a9da
Move openai assistant agent to autogen-ext; add on_messages_stream (#4268) 2024-11-19 01:42:11 -05:00
Hussein Mozannar
36b822cf8b
Fix lazy init websurfer (#4178)
* lazy init set

* format
2024-11-13 20:19:48 -08:00