Skip to content

Commit 9b15939

Browse files
LinxinS97JieyuZ2qingyun-wu
authored
[AutoBuild] Supporting build agents from library; supporting generating agent descriptions (microsoft#1039)
* try to fix blog * modify blog * fix test error in microsoft#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 <[email protected]> * add future work * fix grammar * update agent_builder * solve microsoft#941; add detailed debug info; support json string config * pre-commit * solve microsoft#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 --------- Co-authored-by: Jieyu Zhang <[email protected]> Co-authored-by: Qingyun Wu <[email protected]>
1 parent f344a0f commit 9b15939

File tree

12 files changed

+3010
-1339
lines changed

12 files changed

+3010
-1339
lines changed

.github/workflows/contrib-openai.yml

+3
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,9 @@ jobs:
200200
pip install -e .
201201
python -c "import autogen"
202202
pip install coverage pytest-asyncio
203+
- name: Install packages for test when needed
204+
run: |
205+
pip install -e .[autobuild]
203206
- name: Coverage
204207
env:
205208
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}

autogen/agentchat/contrib/agent_builder.py

+428-116
Large diffs are not rendered by default.

notebook/agent_library_example.json

+74
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
[
2+
{
3+
"name": "Environmental_Scientist",
4+
"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."
5+
},
6+
{
7+
"name": "Astronomer",
8+
"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."
9+
},
10+
{
11+
"name": "Software_Developer",
12+
"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."
13+
},
14+
{
15+
"name": "Data_Analyst",
16+
"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."
17+
},
18+
{
19+
"name": "Journalist",
20+
"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."
21+
},
22+
{
23+
"name": "Teacher",
24+
"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."
25+
},
26+
{
27+
"name": "Lawyer",
28+
"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."
29+
},
30+
{
31+
"name": "Programmer",
32+
"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."
33+
},
34+
{
35+
"name": "Accountant",
36+
"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."
37+
},
38+
{
39+
"name": "Mathematician",
40+
"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."
41+
},
42+
{
43+
"name": "Physicist",
44+
"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."
45+
},
46+
{
47+
"name": "Biologist",
48+
"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."
49+
},
50+
{
51+
"name": "Chemist",
52+
"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."
53+
},
54+
{
55+
"name": "Statistician",
56+
"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."
57+
},
58+
{
59+
"name": "IT_Specialist",
60+
"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."
61+
},
62+
{
63+
"name": "Cybersecurity_Expert",
64+
"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."
65+
},
66+
{
67+
"name": "Artificial_Intelligence_Engineer",
68+
"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."
69+
},
70+
{
71+
"name": "Financial_Analyst",
72+
"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."
73+
}
74+
]

0 commit comments

Comments
 (0)