* Initialization of fsm blog
* Pre-commit pass
* Pinyin name correction
* Updated title
* Updated title
* Added summary of notebook and note about DAG
* Update index.mdx
* Update website/blog/2024-02-11-FSM-GroupChat/index.mdx
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* Update website/blog/2024-02-11-FSM-GroupChat/index.mdx
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* Removed outdated filename and followed SoM notebook format
* Pre-commit pass
* Update notebook link
* Corrected link to rendered notebook
* Removed agentchat_hierarchy_flow_using_select_speaker and modified agentchat_groupchat_finite_state_machine
* Add notebook/agentchat_groupchat_finite_state_machine.ipynb to paths
---------
Co-authored-by: freedeaths <register917@gmail.com>
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* Allow the GroupChatManager to send introductions.
* Fixed function name.
* Added test cases for sending introductions.
* Trying to sort out why remote pytest is failing.
* Fixed broken plugin behavior.
* Update autogen/agentchat/groupchat.py
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* Updated as per Chi's suggestions.
---------
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
* support getting model from both llm config and config list
* address comments
* address commentsd
---------
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* checkpoint async based
* Implement jupyter client and use jupyer gateway
* update deps
* address comments
* add missing parenthesis
* Update build.yml
* CI fixes
* change requirement name
* debug
* print stderr
* dont seek
* show token
* mitigaton for windows bug
* use hex token to avoid - in token
* formatting
* put back in place original while the windows bug exists
* lint
* Update autogen/coding/jupyter_code_executor.py
* Update jupyter_code_executor.py
* Update test_embedded_ipython_code_executor.py
* Update setup.py
* Update build.yml
* fix nameerror
---------
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
* Update code_utils.py
Updated the powershell command to pwsh
* Update code_utils.py
added a split to handle powershell in the first condition as well
* Update local_commandline_code_executor.py
added "pwsh" as a command option in lang variable
* Update autogen/coding/local_commandline_code_executor.py
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
* Update code_utils.py
* Update code_utils.py
fixed formatting
* Update code_utils.py
defined a function to detect whether 'powershell' or 'pwsh' works and accordingly use the one that works
* Update code_utils.py
fixed formatting
* Update and rename test_code.py to test_code_utils.py
added a unit test for get_powershell_command function in code_utils.py
* Update test_code_utils.py
fixed formatting
* Update test_code_utils.py
fixed formatting
* Update autogen/code_utils.py
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* solved issue #1747
* updated unit test
* fixed formatting
* fixed formatting
* fixed formatting
* fixed a bug
* removed extra return None and removed redundant comments
---------
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* try to fix blog
* modify blog
* fix test error in #717; fix blog typo in installation; update blogs with output examples.
* pre-commit
* pre-commit
* Update website/blog/2023-11-26-Agent-AutoBuild/index.mdx
Co-authored-by: Qingyun Wu <qingyun.wu@psu.edu>
* add future work
* fix grammar
* update agent_builder
* solve #941; add detailed debug info; support json string config
* pre-commit
* solve #954
* pre-commit
* [new feature] build group chat agents from library.
* pre-commit
* add authors' info in notebook; add a new notebook for build_from_library; reduce prompt effort
* update test and example for build_from_library
* pre-commit
* add notebook; update docs
* change notebook name
* change description for notebook and doc
* remove default value for default_llm_config
* add embedding similarity agent selection
* pre-commit
* update test
* add dependency installation in github workflow
* update test
* pre-commit
* update notebook
* support directly json as library; support customize embedding model
* update test
* pre-commit
* update github test workflow
* Update autobuild_agent_library.ipynb
* add agent description
* refine prompt; update notebook
* pre-commit
* update test example
* update test
* update test
* update test
* change `config_path` to `config_path_or_env`; update test
* pre-commit
* update test
* update test
* update test: add config_file_location
* change `config_path_or_env` to `config_file_or_env`
* update test
* solve noqa
* fix import error for conftest
* fix test error
* pre-commit
* * update error message in `_create_agent`.
* replace `gpt-4-1106-preview` to `gpt-4` in test file.
* add comment on local server creation; modify notebook; update contrib-openai.yml for test; add autobuild option in setup.py; add autotest model name statement
* move import huggingface_hub to _create_agent
* pre-commit
* add uncover comment in the endpoint creation code block
* recover contrib-openai.yml for merge
* remove TERMINATE assertion for sys msg
* remove TERMINATE assertion
---------
Co-authored-by: Jieyu Zhang <jieyuz2@cs.washington.edu>
Co-authored-by: Qingyun Wu <qingyun.wu@psu.edu>
* Allow None for sender field
* Apply formatting fixes
* Add test for ConversableAgent generate_reply with message is provided and sender is None
---------
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* refactored code to simplify
* optimize function. Instead of iterating over each character, guess at size and then iterate by token.
* adding tests
* Add missing tests
* minor test fix
* simplified token truncation by using tiktoken to encode and decode
* updated truncated notification message
* Fix llm_config spec to use os.environ
* Add test case and fix bug in loop
---------
Co-authored-by: gagb <gagb@users.noreply.github.com>
* Update code_utils.py
Updated the powershell command to pwsh
* Update code_utils.py
added a split to handle powershell in the first condition as well
* Update local_commandline_code_executor.py
added "pwsh" as a command option in lang variable
* Update autogen/coding/local_commandline_code_executor.py
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
* Update code_utils.py
* Update code_utils.py
fixed formatting
* Update code_utils.py
defined a function to detect whether 'powershell' or 'pwsh' works and accordingly use the one that works
* Update code_utils.py
fixed formatting
* Update and rename test_code.py to test_code_utils.py
added a unit test for get_powershell_command function in code_utils.py
* Update test_code_utils.py
fixed formatting
* Update test_code_utils.py
fixed formatting
* Update autogen/code_utils.py
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
---------
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* UPDATE - add commandline sanitation class, update local_commandline_code_executor.py and renamed test for code_utils.py
* FIX - precommit run
* UPDATE - moved sanitation function to LocalCommandlineCodeExecutor, moved testo to test_commandline_code_executor.py
* UPDATE - added docstring notice to sanitize_code
* Update autogen/coding/local_commandline_code_executor.py
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
* FIX - regular expression
* FIX - function invocation in tests
* UPDATE - pre-commit run
* FIX - pre-commit run -_-
---------
Co-authored-by: Ward <award40@LAMU0CLP74YXVX6.uhc.com>
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
* Change defualt model for `lmm`
* Try to use PIL image for LMM's _oai_messages
* Update test cases and llava
* Remove redundant files
* Update the imports for lmm tests
* Test case fix
* Docstring update
* LMM notebook lint
* Typo correction for img_utils and its test
* Update test_llava.py
debug, reformat
---------
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
Co-authored-by: Shaokun Zhang <shaokunzhang529@gmail.com>
Co-authored-by: Shaokun Zhang <shaokun.zhang@psu.edu>
* implements features
* fix docstring
* adds test
* resolve some comments
* remove unused group chat manager from test
* list implementation
* better naming
* resolve comments
* adds one more test
* checks case when agent doesnt exist
* clean up
---------
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* support azure assistant api
* try to add azure testing
* improve testing
* fix testing
* fix code
---------
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* Validate llm_config passed to ConversableAgent
Based on #1522, this commit implements the additional validation checks in
`ConversableAgent.`
Add the following validation and `raise ValueError` if:
- The `llm_config` is `None`.
- The `llm_config` is valid, but `config_list` is missing or lacks elements.
- The `config_list` is valid, but no `model` is specified.
The rest of the changes are code churn to adjust or add the test cases.
* Validate llm_config passed to ConversableAgent
Based on #1522, this commit implements the additional validation checks in
`ConversableAgent.`
Add the following validation and `raise ValueError` if:
- The `llm_config` is `None` (validated in `ConversableAgent`).
- The `llm_config` has no `model` specified and `config_list` is empty
(validated in `OpenAIWrapper`).
- The `config_list` has at least one entry, but not all the entries have
the `model` is specified (validated in `OpenAIWrapper`).
The rest of the changes are code churn to adjust or add the test cases.
* Validate llm_config passed to ConversableAgent
Based on #1522, this commit implements the additional validation checks in
`ConversableAgent.`
Add the following validation and `raise ValueError` if:
- The `llm_config` is `None` (validated in `ConversableAgent`).
- The `llm_config` has no `model` specified and `config_list` is empty
(validated in `OpenAIWrapper`).
- The `config_list` has at least one entry, but not all the entries have
the `model` is specified (validated in `OpenAIWrapper`).
The rest of the changes are code churn to adjust or add the test cases.
* Validate llm_config passed to ConversableAgent
Based on #1522, this commit implements the additional validation checks in
`ConversableAgent.`
Add the following validation and `raise ValueError` if:
- The `llm_config` is `None` (validated in `ConversableAgent`).
- The `llm_config` has no `model` specified and `config_list` is empty
(validated in `OpenAIWrapper`).
- The `config_list` has at least one entry, but not all the entries have
the `model` is specified (validated in `OpenAIWrapper`).
The rest of the changes are code churn to adjust or add the test cases.
* Validate llm_config passed to ConversableAgent
Based on #1522, this commit implements the additional validation checks in
`ConversableAgent.`
Add the following validation and `raise ValueError` if:
- The `llm_config` is `None` (validated in `ConversableAgent`).
- The `llm_config` has no `model` specified and `config_list` is empty
(validated in `OpenAIWrapper`).
- The `config_list` has at least one entry, but not all the entries have
the `model` is specified (validated in `OpenAIWrapper`).
The rest of the changes are code churn to adjust or add the test cases.
* Fix the test_web_surfer issue
For anyone reading this: you need to `pip install markdownify` for the
`import WebSurferAgent` to succeed. That is needed to run the
`test_web_surfer.py` locally.
Test logic needs `llm_config` that is not `None` and that is not
`False`.
Let us pray that this works as part of GitHub actions ...
* One more fix for llm_config validation contract
* WIP:logging
* serialize request, response and client
* Fixed code formatting.
* Updated to use a global package, and added some test cases. Still very-much a draft.
* Update work in progress.
* adding cost
* log new agent
* update log_completion test in test_agent_telemetry
* tests
* fix formatting
* Added additional telemetry for wrappers and clients.
* WIP: add test for oai client and oai wrapper table
* update test_telemetry
* fix format
* More tests, update doc and clean up
* small fix for session id - moved to start_logging and return from start_logging
* update start_logging type to return str, add notebook to demonstrate use of telemetry
* add ability to get log dataframe
* precommit formatting fixes
* formatting fix
* Remove pandas dependency from telemetry and only use in notebook
* formatting fixes
* log query exceptions
* fix formatting
* fix ci
* fix comment - add notebook link in doc and fix groupchat serialization
* small fix
* do not serialize Agent
* formatting
* wip
* fix test
* serialization bug fix for soc moderator
* fix test and clean up
* wip: add version table
* fix test
* fix test
* fix test
* make the logging interface more general and fix client model logging
* fix format
* fix formatting and tests
* fix
* fix comment
* Renaming telemetry to logging
* update notebook
* update doc
* formatting
* formatting and clean up
* fix doc
* fix link and title
* fix notebook format and fix comment
* format
* try fixing agent test and update migration guide
* fix link
* debug print
* debug
* format
* add back tests
* fix tests
---------
Co-authored-by: Adam Fourney <adamfo@microsoft.com>
Co-authored-by: Victor Dibia <victordibia@microsoft.com>
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* Validate the OpenAI API key format
Increase the amount of internal validation for OpenAI API keys. The intent is
to shorten the debugging loop in case of typos. The changes do *not* add
validation for Azure OpenAI API keys.
* Add the validation in `__init__` of `OpenAIClient`.
* Introduce the `MOCK_OPEN_AI_API_KEY` constant for testing.
* Add unit test coverage for the `is_valid_api_key` function.
* Validate the OpenAI API key format
Increase the amount of internal validation for OpenAI API keys. The intent is
to shorten the debugging loop in case of typos. The changes do *not* add
validation for Azure OpenAI API keys.
* Add the validation in `__init__` of `OpenAIClient`.
* Introduce the `MOCK_OPEN_AI_API_KEY` constant for testing.
*Add unit test coverage for the `is_valid_api_key` function.
* Log a warning when register a default client fails.
* Validate the OpenAI API key format
Increase the amount of internal validation for OpenAI API keys. The intent is
to shorten the debugging loop in case of typos. The changes do *not* add
validation for Azure OpenAI API keys.
* Add the validation in `__init__` of `OpenAIClient`. We'll log a
warning when the OpenAI API key isn't valid.
* Introduce the `MOCK_OPEN_AI_API_KEY` constant for testing.
* Add unit test coverage for the `is_valid_api_key` function.
* Check for OpenAI base_url before API key validation
---------
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* refactoring web surfer to use function decorators
* limited pytest version
* bug fix in test
* bug fixes
* refactoring
* Fix web_surfer tests.
---------
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
Co-authored-by: Adam Fourney <adamfo@microsoft.com>
* code executor
* test
* revert to main conversable agent
* prepare for pr
* kernel
* run open ai tests only when it's out of draft status
* update workflow file
* revert workflow changes
* ipython executor
* check kernel installed; fix tests
* fix tests
* fix tests
* update system prompt
* Update notebook, more tests
* notebook
* raise instead of return None
* allow user provided code executor.
* fixing types
* wip
* refactoring
* polishing
* fixed failing tests
* resolved merge conflict
* fixing failing test
* wip
* local command line executor and embedded ipython executor
* revert notebook
* fix format
* fix merged error
* fix lmm test
* fix lmm test
* move warning
* name and description should be part of the agent protocol, reset is not as it is only used for ConversableAgent; removing accidentally commited file
* version for dependency
* Update autogen/agentchat/conversable_agent.py
Co-authored-by: Jack Gerrits <jackgerrits@users.noreply.github.com>
* ordering of protocol
* description
* fix tests
* make ipython executor dependency optional
* update document optional dependencies
* Remove exclude from Agent protocol
* Make ConversableAgent consistent with Agent
* fix tests
* add doc string
* add doc string
* fix notebook
* fix interface
* merge and update agents
* disable config usage in reply function
* description field setter
* customize system message update
* update doc
---------
Co-authored-by: Davor Runje <davor@airt.ai>
Co-authored-by: Jack Gerrits <jackgerrits@users.noreply.github.com>
Co-authored-by: Aaron <aaronlaptop12@hotmail.com>
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* Add new capability to handle long context
* Make print conditional
* Remove superfluous comment
* Fix msg order
* Allow user to specify max_tokens
* Add ability to specify max_tokens per message; improve name
* Improve doc and readability
* Add tests
* Improve documentation and add tests per Erik and Chi's feedback
* Update notebook
* Update doc string of add to agents
* Improve doc string
* improve notebook
* Update github workflows for context handling
* Update docstring
* update notebook to use raw config list.
* Update contrib-openai.yml remove _target
* Fix code formatting
* Fix workflow file
* Update .github/workflows/contrib-openai.yml
---------
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* add initiate_chats implementation and example
* update notebook
* improve takeaway method
* improve print
* improve print
* improve print
* improve print
* add tests
* minor changes
* format
* correct typo
* make prompt a parameter
* add takeaway method
* groupchat messages
* add SoM example
* fix typo
* fix SoM typo
* simplify chat function
* add carryover
* update notebook
* doc
* remove async for now
* remove condition on reply
* correct argument name
* add notebook in website
* format
* make get_chat_takeaway private
* rename takeaway method and add example
* removing SoM example for now
* carryover test
* add test
* takeaway_method
* update tests
* update notebook
* chats_queue
* add get_chat_takeaway
* delete
* add test
* Update autogen/agentchat/conversable_agent.py
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
* docstr
* wording etc
* add chat res
* revise title
* update agent_utils
* unify the async method
* add todo about overriding
* attribute check
* ChatResult type
* revise test
* takeaway to summary
* cache and documentation
* Use cache in summarize chat; polish tests
---------
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
* Move contrib-openai.yml
* Moved groupgroupchat
* From #753
* Removed local test references
* Added ignore=test/agentchat/contrib
* Trying to pass contrib-openai tests
* More specific in unit testing.
* Update .github/workflows/contrib-tests.yml
Co-authored-by: Li Jiang <lijiang1@microsoft.com>
* Remove coverage as it is included in test dependencies
* Improved docstring with overview of GraphGroupChat
* Iterate on feedback
* Precommit pass
* user just use pip install pyautogen[graphs]
* Pass precommit
* Pas precommit
* Graph utils an test completed
* Added inversion tests
* Added inversion util
* allow_repeat_speaker can be a list of Agents
* Remove unnessary imports
* Expect ValueError with 1 and 0 agents
* Check that main passes all tests
* Check main
* Pytest all in main
* All done
* pre-commit changes
* noqa E402
* precommit pass
* Removed bin
* Removed old unit test
* Test test_graph_utils
* minor cleanup
* restore tests
* Correct documentation
* Special case of only one agent remaining.
* Improved pytest
* precommit pass
* Delete OAI_CONFIG_LIST_sample copy
* Returns a filtered list for auto to work
* Rename var speaker_order_dict
* To write test cases
* Added check for a list of Agents to repeat
* precommit pass
* Update documentation
* Extract names in allow_repeat_speaker
* Post review changes
* hange "pull_request_target" into "pull_request" temporarily.
* 3 return values from main
* pre-commit changes
* PC edits
* docstr changes
* PC edits
* Rest of changes from main
* Update autogen/agentchat/groupchat.py
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* Remove unnecessary script files from tracking
* Non empty scripts files from main
* Revert changes in script files to match main branch
* Removed link from website as notebook is removed.
* test/test_graph_utils.py is tested as part of L52 of build.yml
* GroupChat ValueError check
* docstr update
* More clarification in docstr
* Update autogen/agentchat/groupchat.py
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* Update autogen/agentchat/groupchat.py
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* Update autogen/agentchat/groupchat.py
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* Update autogen/agentchat/groupchat.py
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* 1.add commit to line138 in groupchat.py;2.fix bug if random choice [];3.return selected_agent if len(graph_eligible_agents) is 1;4.replace all speaker_order to speaker_transitions;5.format
* fix graph_modelling notebook in the last cell
* fix failure in test_groupchat.py
* fix agent out of group to initiate a chat like SocietyOfMind
* add a warning rule in graph_utils to check duplicates in any lists
* refactor allowed_or_disallowed_speaker_transitions to Dict[Agent, List[Agent]] and modify the tests and notebook
* delete Rule 4 in graph_utils and related test case. Add a test to resolve 993fd006e9 (r1460726831)
* fix as the final comments
* modify setup option from graphs to graph and add texts in optional-dependencies.md
* Update autogen/graph_utils.py
---------
Co-authored-by: Li Jiang <lijiang1@microsoft.com>
Co-authored-by: Beibin Li <BeibinLi@users.noreply.github.com>
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
Co-authored-by: Qingyun Wu <qingyun0327@gmail.com>
Co-authored-by: Yishen Sun <freedeaths@FREEDEATHS-XPS>
Co-authored-by: freedeaths <register917@gmail.com>
* add client interface, response protocol, and move code into openai client class
* add ability to register custom client
* tidy up code
* adding checks and errors, and more unit tests
* remove code
* fix error msg
* add use_docer False in notebook
* better error message
* add another example to custom model notebook
* rename and have register_client take model name too
* make Client protocol and remove inheritance
* renames
* update notebook
* add link
* rename and more error checking for registered agents
* adding message retrieval to client protocol for more flexible response
* fix failing openai test
* api_type req made model_client_cls requirement
* notebook cleanup and added blog
* remove raise error if client list is empty - client list will never be empty it will have placeholders
* rename Client -> ModelClient
* add forgotten file
* fix test by fetching internal client
* Update autogen/oai/client.py
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
* don't add retrieval function to cache
* added placeholder cllient class during initial client init, and rewrote registration
* fix spelling
* Update autogen/agentchat/conversable_agent.py
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* type hints, small fixes, docstr comment
* fix api type checking
---------
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* added overwrite_tools logic to GPTAssistantAgent
* added test test_gpt_assistant_tools_overwrite
* fetch tools without get_assistant_tools method
* fixed code formatting
* fixed no .get found
* function calling upgraded: async/sync mixing works now for all combinations and register_function added to simplify registration of functions without decorators
* polishing
* fixing tests
---------
Co-authored-by: Eric Zhu <ekzhu@users.noreply.github.com>
Co-authored-by: Chi Wang <wang.chi@microsoft.com>
* Added a GroupChatRepresentative class that uses group chat as an inner-monologue.
* Renamed GroupChatRepresentative to SocietyOfMindAgent
* Added tests for the society of mind agent.
* Don't force message attribution -- the defaults are correct.
* Add names to external messages.
* Added some comments to document code, per request.
* Added some comments to document code, per request.
* Added a Notebook example, and the ability to use a prompt as the response_preparer.
* Protect inner chat with try-catch
* Fixed typo.
---------
Co-authored-by: Chi Wang <wang.chi@microsoft.com>