Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[AutoBuild] Supporting build agents from library; supporting generating agent descriptions #1039

Merged
merged 99 commits into from
Jan 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
4ba3d6e
try to fix blog
LinxinS97 Dec 4, 2023
58c19f4
modify blog
LinxinS97 Dec 4, 2023
4b85616
fix test error in #717; fix blog typo in installation; update blogs w…
LinxinS97 Dec 4, 2023
165d1a3
pre-commit
LinxinS97 Dec 4, 2023
f0057be
pre-commit
LinxinS97 Dec 4, 2023
b474441
Merge branch 'main' into autobuild
JieyuZ2 Dec 4, 2023
8ceb62b
Update website/blog/2023-11-26-Agent-AutoBuild/index.mdx
JieyuZ2 Dec 4, 2023
119f3f3
Merge branch 'main' into autobuild
JieyuZ2 Dec 4, 2023
645b9e5
Merge branch 'main' into autobuild
JieyuZ2 Dec 5, 2023
1c82a02
add future work
LinxinS97 Dec 5, 2023
8df4113
fix grammar
JieyuZ2 Dec 5, 2023
030c96a
Merge branch 'main' into autobuild
JieyuZ2 Dec 5, 2023
2d06739
update agent_builder
LinxinS97 Dec 8, 2023
7345be4
Merge remote-tracking branch 'origin/autobuild' into autobuild
LinxinS97 Dec 8, 2023
30b6a90
Merge branch 'main' into autobuild
LinxinS97 Dec 8, 2023
312c314
solve #941; add detailed debug info; support json string config
LinxinS97 Dec 11, 2023
e63044e
Merge remote-tracking branch 'origin/main' into autobuild
LinxinS97 Dec 11, 2023
c2816a5
pre-commit
LinxinS97 Dec 11, 2023
2feda6f
solve #954
LinxinS97 Dec 15, 2023
0630af2
pre-commit
LinxinS97 Dec 15, 2023
58e6664
Merge branch 'main' into autobuild
JieyuZ2 Dec 16, 2023
72538dc
[new feature] build group chat agents from library.
LinxinS97 Dec 21, 2023
bb7140b
Merge remote-tracking branch 'origin/main' into autobuild
LinxinS97 Dec 21, 2023
119d79c
Merge remote-tracking branch 'origin/autobuild' into autobuild
LinxinS97 Dec 21, 2023
6f36592
pre-commit
LinxinS97 Dec 21, 2023
ae2ad1f
Merge branch 'main' into autobuild
JieyuZ2 Dec 21, 2023
2047e4b
Merge branch 'main' into autobuild
JieyuZ2 Dec 22, 2023
add2bb9
add authors' info in notebook; add a new notebook for build_from_libr…
LinxinS97 Dec 23, 2023
42723e2
Merge remote-tracking branch 'origin/main' into autobuild
LinxinS97 Dec 23, 2023
984b991
update test and example for build_from_library
LinxinS97 Dec 23, 2023
b0e9072
pre-commit
LinxinS97 Dec 23, 2023
0be2775
Merge remote-tracking branch 'origin/autobuild' into autobuild
LinxinS97 Dec 23, 2023
77ba7b4
add notebook; update docs
LinxinS97 Dec 23, 2023
1b9df2b
change notebook name
LinxinS97 Dec 23, 2023
39be0de
change description for notebook and doc
LinxinS97 Dec 23, 2023
df1fae4
Merge remote-tracking branch 'origin/main' into autobuild
LinxinS97 Dec 24, 2023
ba24de3
Merge remote-tracking branch 'origin/autobuild' into autobuild
LinxinS97 Dec 24, 2023
0e0d8aa
remove default value for default_llm_config
LinxinS97 Dec 24, 2023
0d221d2
Merge branch 'main' into autobuild
LinxinS97 Dec 24, 2023
f30f130
Merge branch 'main' into autobuild
LinxinS97 Dec 25, 2023
067a8cf
Merge branch 'main' into autobuild
JieyuZ2 Dec 25, 2023
650c4aa
add embedding similarity agent selection
LinxinS97 Dec 26, 2023
2a4dbc7
Merge remote-tracking branch 'origin/autobuild' into autobuild
LinxinS97 Dec 26, 2023
ffe978f
pre-commit
LinxinS97 Dec 26, 2023
7bf2997
Merge branch 'main' into autobuild
LinxinS97 Dec 26, 2023
ba13ed7
update test
LinxinS97 Dec 26, 2023
ee1e4d1
Merge remote-tracking branch 'origin/autobuild' into autobuild
LinxinS97 Dec 26, 2023
8c3d71e
add dependency installation in github workflow
LinxinS97 Dec 26, 2023
7876ddb
update test
LinxinS97 Dec 26, 2023
7cbbbd4
pre-commit
LinxinS97 Dec 26, 2023
aea49ce
update notebook
LinxinS97 Dec 26, 2023
3aabe8a
Merge branch 'main' into autobuild
JieyuZ2 Dec 27, 2023
46ad0ce
support directly json as library; support customize embedding model
LinxinS97 Dec 27, 2023
b955814
update test
LinxinS97 Dec 27, 2023
58dea91
pre-commit
LinxinS97 Dec 27, 2023
322c790
Merge remote-tracking branch 'origin/autobuild' into autobuild
LinxinS97 Dec 27, 2023
d1d00e1
update github test workflow
LinxinS97 Dec 27, 2023
ff76e06
Update autobuild_agent_library.ipynb
LinxinS97 Dec 27, 2023
cdb542d
Merge branch 'main' into autobuild
JieyuZ2 Dec 27, 2023
ecd59ad
Merge branch 'main' into autobuild
JieyuZ2 Dec 29, 2023
bcb037b
Merge branch 'main' into autobuild
JieyuZ2 Dec 29, 2023
2210716
add agent description
LinxinS97 Jan 1, 2024
8260244
refine prompt; update notebook
LinxinS97 Jan 1, 2024
6471d48
Merge branch 'main' into autobuild
LinxinS97 Jan 1, 2024
f23cf9e
Merge remote-tracking branch 'origin/autobuild' into autobuild
LinxinS97 Jan 1, 2024
2195f42
pre-commit
LinxinS97 Jan 1, 2024
b09d8e7
update test example
LinxinS97 Jan 1, 2024
69e82dd
update test
LinxinS97 Jan 1, 2024
4126ec3
update test
LinxinS97 Jan 1, 2024
b695b32
update test
LinxinS97 Jan 1, 2024
c5680d3
change `config_path` to `config_path_or_env`; update test
LinxinS97 Jan 2, 2024
07df631
Merge branch 'main' into autobuild
LinxinS97 Jan 2, 2024
0db47a4
Merge remote-tracking branch 'origin/autobuild' into autobuild
LinxinS97 Jan 2, 2024
de965d3
pre-commit
LinxinS97 Jan 2, 2024
c07d091
Merge branch 'main' into autobuild
JieyuZ2 Jan 3, 2024
1b2603c
Merge branch 'main' into autobuild
JieyuZ2 Jan 4, 2024
8a3f0d1
update test
LinxinS97 Jan 4, 2024
f29f1ed
Merge remote-tracking branch 'origin/autobuild' into autobuild
LinxinS97 Jan 4, 2024
fd42149
Merge branch 'main' into autobuild
LinxinS97 Jan 4, 2024
e7da51b
update test
LinxinS97 Jan 4, 2024
b2f47c9
Merge remote-tracking branch 'origin/autobuild' into autobuild
LinxinS97 Jan 4, 2024
1596e27
update test: add config_file_location
LinxinS97 Jan 4, 2024
a224ba9
change `config_path_or_env` to `config_file_or_env`
LinxinS97 Jan 4, 2024
371252f
Merge branch 'main' into autobuild
LinxinS97 Jan 5, 2024
d053dab
update test
LinxinS97 Jan 5, 2024
831af7c
Merge remote-tracking branch 'origin/autobuild' into autobuild
LinxinS97 Jan 5, 2024
655e7d0
solve noqa
LinxinS97 Jan 5, 2024
be4e5d1
fix import error for conftest
LinxinS97 Jan 5, 2024
92bc102
Merge branch 'main' into autobuild
LinxinS97 Jan 5, 2024
b1e963f
Merge branch 'main' into autobuild
LinxinS97 Jan 5, 2024
17df239
fix test error
LinxinS97 Jan 6, 2024
127073a
Merge remote-tracking branch 'origin/autobuild' into autobuild
LinxinS97 Jan 6, 2024
e81637d
pre-commit
LinxinS97 Jan 6, 2024
57ced13
* update error message in `_create_agent`.
LinxinS97 Jan 6, 2024
ce4ba93
add comment on local server creation; modify notebook; update contrib…
LinxinS97 Jan 6, 2024
5d9a892
move import huggingface_hub to _create_agent
LinxinS97 Jan 6, 2024
9ca9d56
pre-commit
LinxinS97 Jan 6, 2024
d8dcfe9
add uncover comment in the endpoint creation code block
LinxinS97 Jan 6, 2024
11c893f
recover contrib-openai.yml for merge
LinxinS97 Jan 6, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .github/workflows/contrib-openai.yml
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,9 @@ jobs:
pip install -e .
python -c "import autogen"
pip install coverage pytest-asyncio
- name: Install packages for test when needed
run: |
pip install -e .[autobuild]
- name: Coverage
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
Expand Down
544 changes: 428 additions & 116 deletions autogen/agentchat/contrib/agent_builder.py

Large diffs are not rendered by default.

74 changes: 74 additions & 0 deletions notebook/agent_library_example.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
[
{
"name": "Environmental_Scientist",
"profile": "As an Environmental Scientist, the candidate should possess a strong background in environmental science, demonstrate the ability to effectively collaborate with a diverse team in a group chat to solve tasks, and have proficiency in Python for data analysis, without the need for code interpretation skills."
},
{
"name": "Astronomer",
"profile": "As an astronomer required to work collaboratively in a group chat setting, the candidate must possess strong proficiency in Python for data analysis and research purposes, alongside the ability to efficiently complete tasks assigned by leadership or colleagues without the need for code interpretation skills."
},
{
"name": "Software_Developer",
"profile": "As a Software Developer for this position, you must be able to work collaboratively in a group chat environment to complete tasks assigned by a leader or colleague, primarily using Python programming expertise, excluding the need for code interpretation skills."
},
{
"name": "Data_Analyst",
"profile": "As a Data Analyst for this position, you must be adept at analyzing data using Python, completing tasks assigned by leaders or colleagues, and collaboratively solving problems in a group chat setting with professionals of various roles."
},
{
"name": "Journalist",
"profile": "As a journalist in this position, you must possess strong collaboration and communication abilities to efficiently complete tasks assigned by leaders or colleagues within a group chat environment, without the need for code interpretation skills, although a basic understanding of Python is preferred."
},
{
"name": "Teacher",
"profile": "As a teacher, you need to possess a bachelor's degree in education or a related field, have a valid teaching certificate, be able to complete assignments provided by supervisors or colleagues, work collaboratively in group chats with professionals from various fields, and have a basic understanding of Python for educational purposes, excluding the need to interpret code."
},
{
"name": "Lawyer",
"profile": "As a lawyer in this position, you must possess a Juris Doctor degree, be licensed to practice law, have strong analytical and communication skills, be able to complete tasks assigned by leaders or colleagues, and collaborate effectively in group chat environments with professionals across various disciplines, while having a basic understanding of Python for task-related purposes, excluding code interpretation."
},
{
"name": "Programmer",
"profile": "As a Programmer for this position, you should be proficient in Python, able to effectively collaborate and solve problems within a group chat environment, and complete tasks assigned by leaders or colleagues without requiring expertise in code interpretation."
},
{
"name": "Accountant",
"profile": "As an accountant in this position, one should possess a strong proficiency in accounting principles, the ability to effectively collaborate within team environments, such as group chats, to solve tasks, and have a basic understanding of Python for limited coding tasks, all while being able to follow directives from leaders and colleagues."
},
{
"name": "Mathematician",
"profile": "As a mathematician in this position, you should possess an advanced degree in mathematics, excel at collaborating and communicating within a group chat to solve complex tasks alongside professionals from various disciplines, and have proficiency in Python for any required computational work."
},
{
"name": "Physicist",
"profile": "As a physicist for this position, one must hold a strong foundation in physics principles, possess a minimum of a master's degree in physics or related fields, demonstrate proficiency in Python for task-specific computations, be willing to collaborate and solve problems within a multidisciplinary group chat, and not be required to interpret code from languages other than Python."
},
{
"name": "Biologist",
"profile": "As a biologist for this position, one must hold a degree in biology or a related field, have proficiency in Python for data analysis, be able to complete tasks assigned by leaders or colleagues, and collaborate effectively in a group chat with professionals from various disciplines."
},
{
"name": "Chemist",
"profile": "As a chemist, one should possess a degree in chemistry or a related field, have strong analytical skills, work collaboratively within a team setting to complete tasks assigned by supervisors or peers, and have a basic proficiency in Python for any necessary data analysis."
},
{
"name": "Statistician",
"profile": "As a Statistician, the applicant should possess a strong background in statistics or mathematics, proficiency in Python for data analysis, the ability to work collaboratively in a team setting through group chats, and readiness to tackle and solve tasks delegated by supervisors or peers."
},
{
"name": "IT_Specialist",
"profile": "As an IT Specialist, you should possess strong problem-solving skills, be able to effectively collaborate within a team setting through group chats, complete tasks assigned by leaders or colleagues, and have proficiency in Python programming, excluding the need for code interpretation expertise."
},
{
"name": "Cybersecurity_Expert",
"profile": "As a Cybersecurity Expert, you must have the ability to collaborate in a group chat, completing tasks assigned by leaders or peers, and possess proficiency in Python, albeit without the need for code interpretation skills."
},
{
"name": "Artificial_Intelligence_Engineer",
"profile": "As an Artificial Intelligence Engineer, you should be adept in Python, able to fulfill tasks assigned by leaders or colleagues, and capable of collaboratively solving problems in a group chat with diverse professionals."
},
{
"name": "Financial_Analyst",
"profile": "As a Financial Analyst, one must possess strong analytical and problem-solving abilities, be proficient in Python for data analysis, have excellent communication skills to collaborate effectively in group chats, and be capable of completing assignments delegated by leaders or colleagues."
}
]
Loading
Loading