Commit Graph

78 Commits

Author SHA1 Message Date
Nour Bouzid 02e968a531
FunctionTool partial support (#5183)
<!-- 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?

FunctionTool supports passing in a partial

## Related issue number

Closes #5151 

## Checks

- [x] 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.
- [x] I've added tests (if relevant) corresponding to the changes
introduced in this PR.
- [x] I've made sure all auto checks have passed.
2025-01-29 18:02:18 +00:00
Mohammad Mazraeh 2f1684b698
update dependencies to work with protobuf 5 (#5195)
Closes #5074

Signed-off-by: Mohammad Mazraeh <mazraeh.mohammad@gmail.com>
2025-01-28 22:11:54 -08:00
Victor Dibia 6359b6a7be
improve component config, add description support in dump_component (#5203)
<!-- 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?

It is currently hard to add a description to a component (defaults to
None also) .. you have to call super.dump() modify and return. This PR
makes the experience better.

- allows you specify `component_description` and `component_label` as an
optional class var. label is an optional human readable name for the the
component.
- will use component_description if provided int he description field
when dumped if there is no description, will use the first line of class
docstring. Takes advantage of all the good practices we have in writing
good docstrings. label defaults to component type.
 

For example 

```python
model_client=OpenAIChatCompletionClient( model="gpt-4o-2024-08-06" )
config = model_client.dump_component()
print(config.model_dump_json())
```
Note the description field below is no longer None and there is a label
```python
{
  "provider": "autogen_ext.models.openai.OpenAIChatCompletionClient",
  "component_type": "model",
  "version": 1,
  "component_version": 1,
  "description": "Chat completion client for OpenAI hosted models.",
  "label": "OpenAIChatCompletionClient",
  "config": { "model": "gpt-4o-2024-08-06" }
}


```

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

## Related issue number

<!-- For example: "Closes #1234" -->
None, felt faster to fix.

## Checks

- [x] 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.
- [x] I've added tests (if relevant) corresponding to the changes
introduced in this PR.
- [x] I've made sure all auto checks have passed.
2025-01-27 21:41:23 +00:00
Victor Dibia 979d8ab4f1
Make AgentChat Team Config Serializable (#5071)
* initial pass on making group chats declarative

* update group chat tests

* update impl to include participant serialization for all teams

* v1 making soc declarative

* update memory test

* update chatagent and team base classes

* update serialization doc notebook

* fomating updates
2025-01-24 07:08:22 +00:00
Victor Dibia 58d789a249
Make FunctionTools Serializable (Declarative) (#5052)
* vi1 for declarative tools

* make functtools declarative

* add tests

* update imports

* update formatting

* move tests, format fixes

* format updates

* update test

* add user warning to _from_config

* add warning on load_component to docs

---------

Co-authored-by: Ryan Sweet <rysweet@microsoft.com>
2025-01-24 03:49:43 +00:00
Victor Dibia 5e9b24c3d9
Make Memory and Team an ABC (#5149)
* make memory and team an ABC

* update memory test

* update tests
2025-01-22 15:51:34 -08:00
Sachin Joglekar 8bd65c672f
Add ChatCompletionCache along with AbstractStore for caching completions (#4924)
* Add ChatCompletionCache along with AbstractStore for caching completions

* Addressing comments

* Improve interface for cachestore

* Improve documentation & revert protocol

* Make cache store typed, and improve docs

* remove unnecessary casts
2025-01-16 15:47:38 -08:00
Eric Zhu 6954e516b6
Update autogen_core.memory: adding docs, removing some fields. (#5053)
* Update autogen_core.memory: adding docs, removing some fields.

* Remove timestamp

* Remove name from base; fix example code

* fix test

* lint

* fix doc
2025-01-15 02:33:46 +00:00
Victor Dibia abbdbb2f87
Memory Interface in AgentChat (#4438)
* initial base memroy impl

* update, add example with chromadb

* include mimetype consideration

* add transform method

* update to address feedback, will update after 4681 is merged

* update memory impl,

* remove chroma db, typing fixes

* format, add test

* update uv lock

* update docs

* format updates

* update notebook

* add memoryqueryevent message, yield message for observability.

* minor fixes, make score optional/none

* Update python/packages/autogen-agentchat/src/autogen_agentchat/agents/_assistant_agent.py

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

* update tests to improve cov

* refactor, move memory to core.

* format fixxes

* format updates

* format updates

* fix azure notebook import, other fixes

* update notebook, support str query in Memory protocol

* update test

* update cells

* add specific extensible return types to memory query and update_context

---------

Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
2025-01-14 07:06:13 +00:00
Jack Gerrits 404522bd6b
Split apart component infra to allow for abstract class integration (#5017)
* Split apart component infra to allow for abstract class integration

* fix is_component_class check

* make is_ functions type guards

* Simplify component creation

* undo changes

* Format
2025-01-13 15:58:38 -05:00
peterychang 71a3b238e7
Activate deactivate agents (#4800)
* Instantiate and call activate/deactivate on agents

* autoformatting

* remove activate. Rename deactivate to close

* remove unneeded import

* create close fn in runtime

* change runtime close behavior

* uv.lock

---------

Co-authored-by: Jack Gerrits <jackgerrits@users.noreply.github.com>
2025-01-07 21:37:02 +00:00
Jack Gerrits 5b9be79fba
feat!: Add message context to signature of intervention handler, add more to docs (#4882)
* Add message context to signature of intervention handler, add more to docs

* example

* Add to test

* Fix pyright

* mypy
2025-01-07 12:51:35 -05:00
Griffin Bassman bdfdc6ab5e
fix: poe check errors to pass (#4917)
Co-authored-by: Jack Gerrits <jackgerrits@users.noreply.github.com>
2025-01-07 10:48:37 -05:00
Jack Gerrits e6ac2f37fa
Update logged events, add message id to send message (#4868)
* Update logged events

* add message_id

* serialize payload for log

* fix pytest warning

* serialization

* fix test

* lock

* fix warning and test
2024-12-31 15:11:48 -05:00
Jack Gerrits c58eb9d120
Move intervention objects to root module (#4859)
* Move intervention to root

* usage
2024-12-30 16:09:37 -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
Jack Gerrits 190fcd15ed
fix!: Fix SingleThreadedAgentRuntime busy loop (#4855)
* Fix high cpu usage

* Use queue for shutdown

* mypy fixes

* formatting

* missing import
2024-12-30 15:04:20 -05:00
Leonardo Pinheiro 9a2dbb4fba
Add * before keyword args for ChatCompletionClient (#4822)
add * before keyword args

Co-authored-by: Leonardo Pinheiro <lpinheiro@microsoft.com>
Co-authored-by: Jack Gerrits <jackgerrits@users.noreply.github.com>
2024-12-27 08:41:16 -05:00
Jack Gerrits 0040016bec
Remove usage of internal pydantic functionality for forward ref eval (#4816)
* Remove usage of internal pydantic func

* Update python/packages/autogen-core/tests/test_tools.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update python/packages/autogen-core/tests/test_tools.py

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Remove unused import NoneType from test_tools.py

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2024-12-26 12:15:54 -08:00
Jack Gerrits 90d6723685
Usability improvements to component config (#4794)
* Usability improvements to component config

* Implement model upgrade
2024-12-23 14:03:58 -05:00
Jack Gerrits dda208f9b4
Add component config support (#4757)
* Add wip component impl

* finishing touches

* remove test file

* fix json usage

* Format

---------

Co-authored-by: Victor Dibia <victordibia@microsoft.com>
2024-12-20 13:14:24 -05:00
Aditya Kurniawan c989181da2
use model context for assistant agent, refactor model context (#4681)
* Decouple model_context from AssistantAgent

* add UnboundedBufferedChatCompletionContext to mimic pervious model_context behaviour on AssistantAgent

* moving unbounded buffered chat to a different file

* fix model_context assertions in test_group_chat

* Refactor model context, introduce states

* fixes

* update

---------

Co-authored-by: aditya.kurniawan <aditya.kurniawan@core42.ai>
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
Co-authored-by: Victor Dibia <victordibia@microsoft.com>
2024-12-19 22:27:41 -08:00
kiyoung 2cd91f66d8
make "Alias", "ImportFromModule" classes hashable (#4734)
make hashable to Alias, ImportFromModule

Co-authored-by: Jack Gerrits <jackgerrits@users.noreply.github.com>
2024-12-17 11:11:36 -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
Jack Gerrits 9af450a59f
Move local code exec to ext, uplevel components (#4557) 2024-12-04 20:21:46 -08:00
Jack Gerrits e615059345
Remove extract_markdown_code_blocks from core API (#4554) 2024-12-04 17:13:43 -08:00
Jack Gerrits 2b878763f8
Move grpc runtimes to ext, flatten application (#4553)
* Move grpc runtimes to ext, flatten application

* rename to grpc

* fmt
2024-12-04 16:23:20 -08:00
Jack Gerrits d85a607da9
Move LLMUsageTracker to a cookbook (#4549)
* Move LLMUsageTracker to a cookbook

* rename, add to index

* fmt and remove test

* Update python/packages/autogen-core/docs/src/user-guide/core-user-guide/cookbook/llm-usage-logger.ipynb

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix missing quotation marks in notebook

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2024-12-04 14:49:39 -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
Jack Gerrits 954ba84fe7
Change base agent to use on message impl (#4485)
* Change base agent to use on message impl

* update doc

* Update

* Merge branch 'main' into on_msg_impl
2024-12-03 10:04:12 -08:00
Jack Gerrits a4067f6c0a
Migrate Python distributed runtime to use cloud events for event (#4407)
* Cloud event publishing

* Implement cloud event receiving

* impl host servicer and
2024-11-27 08:32:03 -08:00
Jack Gerrits bd77ccbd7b
Serialize to Proto.Any for python serializer (#4404) 2024-11-27 07:32:01 -08:00
Jack Gerrits 0d3bc948a1
Replatform closure agent on base agent (#4389)
* Replatform closure agent on base agent

* Fix mypy

* update agentcaht

---------
2024-11-26 16:33:37 -08:00
Jack Gerrits 45f16f534b
Fix deprecated usages (#4374) 2024-11-26 16:31:23 -08:00
Jack Gerrits df183be35a
Add special topic for agent direct messaging (#4385)
* Add special topic for agent direct messaging

* move to base

* update sub counts

* Fix tests
2024-11-26 17:01:25 -05:00
peterychang 74bcd5e0f6
add protobuf serialization test (#4224)
* add protobuf serialization test

* proto file regeneration

---------

Co-authored-by: Ryan Sweet <rysweet@microsoft.com>
Co-authored-by: Mohammad Mazraeh <Mazraeh.Mohammad@Gmail.com>
2024-11-26 15:37:40 -05:00
Jack Gerrits 8347881776
Fix intervention handler none check (#4351)
* Fix none check

* fix func

* fmt, lint

---------

Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
2024-11-25 15:50:52 -05:00
Jack Gerrits 9b967fc79a
Update pyright and mypy (#4348)
* Update pyright and mypy

* fmt
2024-11-25 15:08:36 -05:00
Leonardo Pinheiro ac53961bc8
Delete autogen-ext refactor deprecations (#4305)
* delete files and update dependencies

* add explicit config exports

* ignore mypy error on nb

---------

Co-authored-by: Leonardo Pinheiro <lpinheiro@microsoft.com>
Co-authored-by: Jack Gerrits <jackgerrits@users.noreply.github.com>
2024-11-22 11:29:39 -05:00
Eric Zhu 4aec53c36f
Improve agentchat tutorial (#4233) 2024-11-16 09:01:38 -08:00
Jean-Marc Le Roux cac411b56a
Fix broken $ref instances in tool JSON schemas (#4201)
When the tool expects complex inputs that require nested models, pydantic will generate a JSON Schema that will include references to other schemas using the `$ref` keyword (cf https://json-schema.org/understanding-json-schema/structuring#dollarref).

But the `$ref` keyword is not supported by OpenAI.

This fix:

1. Resolves the references and inlines the corresponding schemas.
2. Removes the then useless root `$defs` field of the JSON schema to save tokens.

Co-authored-by: Jean-Marc Le Roux <contact@jmlx.io>
Co-authored-by: Jack Gerrits <jackgerrits@users.noreply.github.com>
2024-11-15 13:40:46 -05:00
Jack Gerrits 2b565713d0
Make save/load state for agent async (#4195) 2024-11-15 10:38:01 -05:00
Gerardo Moreno eca8a95c61
Remove isinstance check from FunctionTool (#3987) (#4056)
* Remove isinstance check from FunctionTool (#3987)

* Move __init__ Args to class docstring

---------

Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
2024-11-04 16:48:57 -08:00
Gerardo Moreno 93733dbd65
Run LocalCommandLineCodeExecutor within venv (#3977)
* Run LocalCommandLineCodeExecutor within venv

* Remove create_virtual_env func and add docstring

* Add explanation for LocalCommandLineExecutor docstring example

* Enhance docstring example explanation

---------

Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
2024-10-29 08:17:34 -07:00
Leonardo Pinheiro 38f62e1609
migrate models (#3848)
* migrate models

* Update python/packages/autogen-agentchat/src/autogen_agentchat/agents/_tool_use_assistant_agent.py

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

* refactor missing imports

* ignore type check errors

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

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

* update packages index page

---------

Co-authored-by: Leonardo Pinheiro <lpinheiro@microsoft.com>
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
2024-10-22 11:40:41 -04:00
Eric Zhu 43ccc811e0
Make sure exceptions in process publish is logged. (#3774) 2024-10-13 12:12:24 -07:00
Leonardo Pinheiro c765a34cbf
Move docker code exec to autogen-ext (#3733)
* move docker code exec to autogen-ext

* fix test

* rename docker subpackage

* add missing renamed package

---------

Co-authored-by: Leonardo Pinheiro <lpinheiro@microsoft.com>
2024-10-11 09:28:15 -07:00
Jack Gerrits 6567d90941
Update references to autogen (#3708) 2024-10-09 15:12:36 -04:00
Leonardo Pinheiro 53e5951474
Lspinheiro/chore/migrate azure executor autogen ext (#3652)
* migrate code executor and tests

* update extras

* update dependencies and examples

* fix imports

* fix uv lock

* add code_executor to toctree

---------

Co-authored-by: Leonardo Pinheiro <lpinheiro@microsoft.com>
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
2024-10-08 15:05:44 -07:00