CrewAI 基础 03-Task

在 crewai 中,Task 描述了实际工作中的一项任务,这个任务可以指定特定的 Agent 去完成,也可以通过委派去要求其他 Agent 完成,就相当于团队的一项工作,指定负责人,然后负责人去自己或者找人去完成

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from crewai import Task

# 定义任务
cv_task=Task(
description="""
查找最近招聘计算机视觉工程师需要具备的工作技能,
那个领域的计算机视觉工程师薪资相对比较高
""",
expected_output="""
使用列表列举工作技能及岗位,Markdown格式
""",
)
nlp_task=Task(
description="""
查找最近招聘计算机自然语言开发工程师需要具备的工作技能,
那个领域的计算机自然语言开发工程师薪资相对比较高
""",
expected_output="""
使用列表列举工作技能及岗位,Markdown格式
""",
context=[cv_task] # 等待cv_task完成后再进行nlp_task
)
cv_task,nlp_task
1
2
3
4
5
6
Task(description=
查找最近招聘计算机视觉工程师需要具备的工作技能,
那个领域的计算机视觉工程师薪资相对比较高
, expected_output=
使用列表列举工作技能及岗位,Markdown格式
)

任务的主要作用是:描述 Agent 要执行的任务,并指定输出格式。以下是输出格式说明:

属性参数类型描述
描述descriptionstr任务的描述。
总结summaryOptional[str]任务摘要,根据描述的前 10 个单词自动生成。
原始rawstr任务的原始输出。这是输出的默认格式。
pydanticpydanticOptional[BaseModel]一个 Pydantic 模型对象,表示任务的结构化输出。
JSON 字典json_dictOptional[Dict[str, Any]]表示任务的 JSON 输出的字典。
代理agentstr执行任务的代理程序。
输出格式output_formatOutputFormat任务输出的格式,选项包括 RAW、JSON 和 Pydantic。默认值为 RAW。abs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 定义Agent
from api_key import SERPER_API_KEY,TAVILY_API_KEY
import os
os.environ["SERPER_API_KEY"] = SERPER_API_KEY # serper.dev API key

from crewai import Agent
from crewai_tools import SerperDevTool
from crewai.llm import LLM

cv_agent=Agent(
role="计算机视觉工程师",
goal="查找并理解计算机视觉工程师的工作内容,熟悉的代码和工具",
backstory = "已经在计算机视觉领域工作5年,有丰富的计算机视觉经验,尤其是在工业缺陷检测方面",
llm=LLM(
model="ollama_chat/qwen2.5:latest",
base_url="http://192.168.3.155:11434"),
memory=True,
verbose=True,
tools=[SerperDevTool(n_results=3)],
embedder_config={
"provider": "ollama",
"config": {
"model": 'quentinz/bge-large-zh-v1.5:latest',
"base_url": 'http://localhost:11434'
}
}
)
cv_task.execute_async(agent=cv_agent)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<Future at 0x211263f3670 state=pending>
# Agent: 计算机视觉工程师
## Task:
查找最近招聘计算机视觉工程师需要具备的工作技能,
那个领域的计算机视觉工程师薪资相对比较高
# Agent: 计算机视觉工程师
## Using tool: Search the internet
## Tool Input:
"{\"search_query\": \"\\u62db\\u8058\\u8ba1\\u7b97\\u673a\\u89c6\\u89c9\\u5de5\\u7a0b\\u5e08 \\u85aa\\u8d44\\u6700\\u9ad8\\u7684\\u9886\\u57df \\u6280\\u80fd\\u8981\\u6c42\"}"
## Tool Output:
Search results: Title: [PDF] 2021年度中国计算机视觉人才调研报告 - Deloitte
Link: https://www2.deloitte.com/content/dam/Deloitte/cn/Documents/innovation/deloitte-cn-iddc-2021-china-computer-vision-talent-survey-report-zh-220225.pdf
Snippet: 在硬技能方面,除了对专业知识的要求外,企业在招聘人才时更加关注人才是否具有计算机视觉领域相关项目经验和科. 研/实习经验。 创新能力. AI/CV相关项目经验. 领导力、管理 ...
---
Title: Indeed:生成式人工智能的技能能够带来近50% 的薪资增长
Link: https://www.nacshr.org/1606.html
Snippet: 生成式人工智能与其他关键技能一起为求职者带来高薪,包括深度学习、计算机视觉以及特定软件语言和框架(如Rust 或PyTorch )的知识。 在技术行业,一个新的 ...
---
Title: 十大AI岗位薪资排行出炉,机器学习居于榜首 - AMiner
Link: https://www.aminer.org/research_report/5d1f0ed27fb2beaed5722279
Snippet: 1.机器学习工程师. 平均工资:$142,859 · 2.数据学家. 平均工资:$126,927 · 3.计算机视觉工程师. 平均工资$126,400 · 4.数据库架构师. 平均工资:$126,008 · 5.
---
# Agent: 计算机视觉工程师
## Final Answer:
\```markdown
最近招聘计算机视觉工程师需要具备的工作技能及岗位
1. 计算机视觉工程师
- 熟悉机器学习算法:支持向量机(SVM)、随机森林、神经网络等;
- 掌握主流的计算机视觉技术,如目标检测与跟踪、图像分类、语义分割等;
- 熟练使用OpenCV, Caffe, TensorFlow, PyTorch等工具;
- 具备实际项目经验,了解深度学习框架的部署和应用;
- 有领域内知名公司或研究项目的实习经历优先。
2. 招聘领域
- 高端制造:工业缺陷检测、自动驾驶系统等;
- 医疗健康:医学影像分析、病理识别等;
- 金融科技:反欺诈、智能投顾等;
- 物流与配送:仓储管理、货物追踪等。
薪资最高的领域:
- 根据2021年度中国计算机视觉人才调研报告,计算机视觉工程师在高端制造领域的薪资相对较高。
\```

访问任务输出

在执行完任务之后,可以通过任务对象访问输出

1
2
3
4
5
6
7
8
task_output = cv_task.output
print(f"Task Description: {task_output.description}")
print(f"Task Summary: {task_output.summary}")
print(f"Raw Output: {task_output.raw}")
if task_output.json_dict:
print(f"JSON Output: {json.dumps(task_output.json_dict, indent=2)}")
if task_output.pydantic:
print(f"Pydantic Output: {task_output.pydantic}")
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Task Description: 
查找最近招聘计算机视觉工程师需要具备的工作技能,
那个领域的计算机视觉工程师薪资相对比较高
Task Summary:
查找最近招聘计算机视觉工程师需要具备的工作技能,
那个领域的计算机视觉工程师薪资相对比较高
...
Raw Output: ```markdown
最近招聘计算机视觉工程师需要具备的工作技能及岗位
1. 计算机视觉工程师
- 熟悉机器学习算法:支持向量机(SVM)、随机森林、神经网络等;
- 掌握主流的计算机视觉技术,如目标检测与跟踪、图像分类、语义分割等;
- 熟练使用OpenCV, Caffe, TensorFlow, PyTorch等工具;
- 具备实际项目经验,了解深度学习框架的部署和应用;
- 有领域内知名公司或研究项目的实习经历优先。
2. 招聘领域
- 高端制造:工业缺陷检测、自动驾驶系统等;
- 医疗健康:医学影像分析、病理识别等;
- 金融科技:反欺诈、智能投顾等;
- 物流与配送:仓储管理、货物追踪等。
薪资最高的领域:
- 根据2021年度中国计算机视觉人才调研报告,计算机视觉工程师在高端制造领域的薪资相对较高。
\```

指定任务依赖关系

一个团队内可以有多个任务发布,通过任务中的 context 指定任务的依赖关系

1
2
3
4
5
6
write_blog_task = Task(
description="写一篇文章,从多个层面讨论计算机视觉工程师转行到计算机自然语言开发工程师,包括技术、能力、薪资、未来发展等",
expected_output="按层次输出文章,Markdown格式",
context=[cv_task, nlp_task]
)
write_blog_task
Task(description=写一篇文章,从多个层面讨论计算机视觉工程师转行到计算机自然语言开发工程师,包括技术、能力、薪资、未来发展等, expected_output=按层次输出文章,Markdown格式)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
## 格式化输出
from pydantic import BaseModel
class Paper(BaseModel):
title:str
content:str
cv_task=Task(
description="""
查找最近招聘计算机视觉工程师需要具备的工作技能,
那个领域的计算机视觉工程师薪资相对比较高
""",
expected_output="""
使用列表列举工作技能及岗位,Markdown格式
""",
output_pydantic=Paper
)
cv_task.execute_async(agent=cv_agent)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<Future at 0x2115fe004f0 state=pending>
# Agent: 计算机视觉工程师
## Task:
查找最近招聘计算机视觉工程师需要具备的工作技能,
那个领域的计算机视觉工程师薪资相对比较高
# Agent: 计算机视觉工程师
## Using tool: Search the internet
## Tool Input:
"{\"search_query\": \"\\u6700\\u8fd1\\u62db\\u8058\\u8ba1\\u7b97\\u673a\\u89c6\\u89c9\\u5de5\\u7a0b\\u5e08 \\u9700\\u8981\\u5177\\u5907\\u7684\\u5de5\\u4f5c\\u6280\\u80fd \\u5de5\\u8d44\\u60c5\\u51b5\"}"
## Tool Output:
Search results: Title: 计算机视觉工程师薪资待遇 - 猎聘
Link: https://www.liepin.com/zpjisuanjishijuegongchengshi/xinzi/
Snippet: 计算机视觉工程师薪资待遇. 主页 招聘信息 薪资待遇 岗位职责 招聘要求. 月平均薪资 ... 该职位工作年限与月均薪资的关系为:. 全部年限平均月薪为:26434元. 1年以下 ...
---
Title: 2020中国计算机视觉人才调研报告:算法岗年薪三十多万
Link: https://m.thepaper.cn/baijiahao_11433021
Snippet: 报告从中国计算机视觉人才所在城市、专业背景、研究领域、开发习惯、薪资情况、行业分布等维度,全面展现人才当前学习与工作的现状。 1、七成以上CV人才 ...
---
Title: 2020中国计算机视觉人才调研报告:算法岗年薪三十多万 - 腾讯云
Link: https://cloud.tencent.com/developer/article/1800907
Snippet: 这一部分将阐释企业、社会对计算机视觉人才学历、专业、技能等方面的具体诉求,同时说明企业对计算机视觉领域非算法岗位的需求情况。
---
# Agent: 计算机视觉工程师
## Final Answer:
{
"title": "最近招聘计算机视觉工程师的工作技能及高薪领域的信息",
"content": "根据网络搜索结果,当前招聘计算机视觉工程师的职位需求多样。通常需要掌握以下工作技能:\n1. 熟练使用Python、C++等编程语言;\n2. 掌握OpenCV、Pandas等计算机视觉库和工具;\n3. 了解深度学习框架如TensorFlow、PyTorch等;\n4. 对图像处理与分析有一定理解。\n此外,薪资方面,在北京或上海等地工作的算法工程师年薪可达到30万以上。"
}