<!-- 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.
<!-- 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.
* 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
* 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>
* 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
* 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>
* 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
* 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>
* 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>
* 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>
* add protobuf serialization test
* proto file regeneration
---------
Co-authored-by: Ryan Sweet <rysweet@microsoft.com>
Co-authored-by: Mohammad Mazraeh <Mazraeh.Mohammad@Gmail.com>
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>
* Remove isinstance check from FunctionTool (#3987)
* Move __init__ Args to class docstring
---------
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
* 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>