2025 年获得理想工作的 9 个必备开源工具
人工智能正在重塑就业格局,但其方式与媒体的描述有所不同。我们比以往任何时候都更需要问题解决者。新领域、新技术和新市场正在迅速涌现。
作为软件开发者,你必须密切关注所有这些新事物,才能在市场中脱颖而出。但找到学习内容可能并不容易。
因此,我整理了一份令人垂涎的工具清单,它们能让你与时俱进,提高你找到工作的机会。
那么,我们走吧。
Composio 👑 - AI 代理的集成平台
我敢打赌(虽然不是真的!但你懂的),人工智能代理会非常受欢迎。新产品将完全由代理操作。然而,要让代理真正发挥作用,你需要将它们连接到外部应用程序。
如果您要创建 AI 工程代理,它必须能够访问 GitHub、Liner、Jira、Slack 等平台才能真正发挥作用。Composio 正是为此而生。我们支持您连接超过 250 个应用程序,从而自动执行复杂的任务。
我们像 OAuth 一样管理身份验证,因此您可以构建重要的功能。
这是一个新兴市场,活动丰富。了解这一点会让你的简历瞬间更酷炫。
Composio 的入门非常简单。
pip install composio-core
添加 GitHub 集成。
composio add github
Composio 代表您处理用户身份验证和授权。
以下是如何使用 GitHub 集成来为存储库加注星标的方法。
from openai import OpenAI
from composio_openai import ComposioToolSet, App
openai_client = OpenAI(api_key="******OPENAIKEY******")
# Initialise the Composio Tool Set
composio_toolset = ComposioToolSet(api_key="**\\\\*\\\\***COMPOSIO_API_KEY**\\\\*\\\\***")
## Step 4
# Get GitHub tools that are pre-configured
actions = composio_toolset.get_actions(actions=[Action.GITHUB_ACTIVITY_STAR_REPO_FOR_AUTHENTICATED_USER])
## Step 5
my_task = "Star a repo ComposioHQ/composio on GitHub"
# Create a chat completion request to decide on the action
response = openai_client.chat.completions.create(
model="gpt-4-turbo",
tools=actions, # Passing actions we fetched earlier.
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": my_task}
]
)
运行此 Python 脚本以使用代理执行给定的指令。
Composio 与 LangChain、LlamaIndex、CrewAi 等著名框架兼容。
欲了解更多信息,请访问官方 文档,欲查看更复杂的示例,请参阅存储库的 示例 部分。
2. Astral 的 UV——最快的 Python 包管理器
如果你从事任何 Python 开发,这都是必备工具。它可能是 Python 混乱的包管理生态系统的最佳解决方案。它只需一个工具,就能取代pip
、 pip-tools
、 pipx
、 poetry
、 、 等众多pyenv
工具 。twine
virtualenv
它是用 Rust 编写的,可以管理 Python 版本、安装应用程序、拥有类似 Cargo 的工作区,最重要的是,它比 快 100 倍pip
。
开始使用它很容易。
curl -LsSf https://astral.sh/uv/install.sh | sh
使用pip
pip install uv
uv 管理项目依赖项和环境,支持锁定文件、工作区等,类似于 rye
或 poetry
:
$ uv init example
Initialized project `example` at `/home/user/example`
$ cd example
$ uv add ruff
Creating virtual environment at: .venv
Resolved 2 packages in 170ms
Built example @ file:///home/user/example
Prepared 2 packages in 627ms
Installed 2 packages in 1ms
+ example==0.1.0 (from file:///home/user/example)
+ ruff==0.5.7
$ uv run ruff check
All checks passed!
请参阅 项目文档 以开始使用。
根据需要下载 Python 版本:
$ uv venv --python 3.12.0
Using Python 3.12.0
Creating virtual environment at: .venv
Activate with: source .venv/bin/activate
$ uv run --python pypy@3.8 -- python --version
Python 3.8.16 (a9dbdca6fc3286b0addd2240f11d97d8e8de187a, Dec 29 2022, 11:45:30)
[PyPy 7.3.11 with GCC Apple LLVM 13.1.6 (clang-1316.0.21.2.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>>>
在当前目录中使用特定的 Python 版本:
$ uv python pin pypy@3.11
Pinned `.python-version` to `pypy@3.11`
请参阅 Python 安装文档 以开始使用。
3. Pydantic - 使用 Python 类型提示进行数据验证
哇!它是我用过的最好的 Python 工具之一,并且与 Numpy、Sklearn 等工具保持着良好的兼容性。
Pydantic 通过提供运行时数据验证以及基于这些提示的解析,将 Python 的类型提示提升到一个新的水平。无论是处理 API 响应、配置文件还是复杂的嵌套数据,Pydantic 都能确保您的输入简洁且结构良好,而无需编写大量的样板代码。
如果您想要 Javascript 生态系统中的类似事物,您可以探索 Zod。
使用pip
或安装它uv
。
uv add pydantic
这是一个简单的例子。
from datetime import datetime
from typing import List, Optional
from pydantic import BaseModel
class User(BaseModel):
id: int
name: str = 'John Doe'
signup_ts: Optional[datetime] = None
friends: List[int] = []
external_data = {'id': '123', 'signup_ts': '2017-06-01 12:22', 'friends': [1, '2', b'3']}
user = User(**external_data)
print(user)
#> User id=123 name='John Doe' signup_ts=datetime.datetime(2017, 6, 1, 12, 22) friends=[1, 2, 3]
print(user.id)
#> 123
查看文档以了解更多信息。

4. Turborepo - 高性能 JavaScript 打包器
这是 JavaScript 和 Typescript 生态系统中 Mono 代码库的 UV 版本。与 UV 类似,Turborepo 也使用 Rust 编写,以实现高性能。
Monorepos 在很多方面都表现出色,但难以扩展。每个工作区都有自己的测试套件、linting 和构建流程,单个 Mono 仓库可能需要执行许多任务。
Turborepo 解决了 Mono 代码库的扩展问题。 远程缓存 存储了所有任务的结果,这意味着您的 CI 无需重复执行相同的工作。
查看文档以了解更多信息。
包括 Vercel、Netflix 和 Adobe 等公司在内的大型企业已经广泛采用了它。
5. RabbitMQ - 消息和流媒体代理
如果您正在构建任何需要异步通信的功能,RabbitMQ 绝对是您的不二之选。它可能是消息代理领域功能最丰富的解决方案,支持 AMQP、MQTT 和 STOMP 等多种协议。这使得它非常适合微服务、事件驱动架构和实时应用程序。
对于使用分布式系统的团队来说,RabbitMQ 是一个必不可少的工具。
这是一个发送和接收消息的简单示例。
安装amqplib
包:
npm install amqplib
生产者:将消息发送到队列。
const amqp = require('amqplib');
const sendMessage = async () => {
const queue = 'task_queue';
const message = 'Hello, RabbitMQ!';
try {
// Connect to RabbitMQ
const connection = await amqp.connect('amqp://localhost');
const channel = await connection.createChannel();
// Ensure the queue exists
await channel.assertQueue(queue, { durable: true });
// Send a message to the queue
channel.sendToQueue(queue, Buffer.from(message), { persistent: true });
console.log(`[x] Sent: ${message}`);
// Close the connection
setTimeout(() => {
connection.close();
process.exit(0);
}, 500);
} catch (error) {
console.error('Error:', error);
}
};
sendMessage();
消费者:从队列接收消息。
const amqp = require('amqplib');
const receiveMessage = async () => {
const queue = 'task_queue';
try {
// Connect to RabbitMQ
const connection = await amqp.connect('amqp://localhost');
const channel = await connection.createChannel();
// Ensure the queue exists
await channel.assertQueue(queue, { durable: true });
console.log(`[x] Waiting for messages in ${queue}. To exit, press CTRL+C`);
// Consume messages
channel.consume(
queue,
(msg) => {
if (msg !== null) {
console.log(`[x] Received: ${msg.content.toString()}`);
channel.ack(msg);
}
},
{ noAck: false }
);
} catch (error) {
console.error('Error:', error);
}
};
receiveMessage();
查看文档以了解更多信息。

6. Sentry - 应用程序监控系统
如果您注重应用的稳定性,Sentry 是您的理想之选。它是实时追踪错误、性能问题和应用健康状况的终极解决方案。无论您是为 Web、移动还是桌面构建应用,Sentry 都能无缝集成,帮助您更快、更明智地进行调试。
凭借其详细的堆栈跟踪、面包屑导航和用户上下文,您可以获得查明问题根源所需的一切。Sentry 的功能远不止于此,它还通过事务追踪和自定义指标等功能帮助您监控应用性能。
查看文档以了解更多信息。
7. Grafana——前所未有的数据可视化
如果您需要监控指标、日志或跟踪信息,Grafana 是您的首选工具。它是一个开源平台,可以将您的原始数据转换为美观的交互式仪表板,让您轻松了解系统中的运行情况。
Grafana 几乎可以与任何数据源集成 - Prometheus、Elasticsearch、InfluxDB、AWS CloudWatch 等。
它绝对是您在几乎所有组织中都能找到的工具之一。
8. LangGraph——构建具有状态的AI代理
如果您希望找到一种更好的方法来管理具有复杂工作流程的 AI 代理,那么 LangGraph 就是您的答案。它是一个用于构建有状态 AI 代理的框架,可以轻松处理多步骤流程、决策和上下文保留。
我们在 LangGraph 中构建了自己的SWE 代理,它在SWE-Bench(测试 AI 编码代理功效的基准)上的得分为 48.60%。
安装 LangGraph。
npm install @langchain/core @langchain/langgraph @langchain/openai @langchain/community
将 Tavily 和 OpenAI 的 API 密钥添加到环境变量中。
// agent.ts
// IMPORTANT - Add your API keys here. Be careful not to publish them.
process.env.OPENAI_API_KEY = "sk-...";
process.env.TAVILY_API_KEY = "tvly-...";
import { TavilySearchResults } from "@langchain/community/tools/tavily_search";
import { ChatOpenAI } from "@langchain/openai";
import { MemorySaver } from "@langchain/langgraph";
import { HumanMessage } from "@langchain/core/messages";
import { createReactAgent } from "@langchain/langgraph/prebuilt";
// Define the tools for the agent to use
const agentTools = [new TavilySearchResults({ maxResults: 3 })];
const agentModel = new ChatOpenAI({ temperature: 0 });
// Initialize memory to persist state between graph runs
const agentCheckpointer = new MemorySaver();
const agent = createReactAgent({
llm: agentModel,
tools: agentTools,
checkpointSaver: agentCheckpointer,
});
// Now it's time to use!
const agentFinalState = await agent.invoke(
{ messages: [new HumanMessage("what is the current weather in sf")] },
{ configurable: { thread_id: "42" } },
);
console.log(
agentFinalState.messages[agentFinalState.messages.length - 1].content,
);
const agentNextState = await agent.invoke(
{ messages: [new HumanMessage("what about ny")] },
{ configurable: { thread_id: "42" } },
);
console.log(
agentNextState.messages[agentNextState.messages.length - 1].content,
);
请阅读此文以了解示例流程。此外,请查看LangGraph文档了解更多信息。

9. Selenium - 浏览器自动化框架
每位技术专业人士在其职业生涯的某个阶段都会遇到浏览器自动化。许多公司依靠 Selenium 执行各种任务,包括 Web 自动化、测试和动态内容抓取。
Selenium 使开发人员能够轻松地以编程方式控制 Web 浏览器,使他们能够模拟用户交互,例如单击按钮、填写表单以及在页面之间导航
它可用于编程语言。
使用 Python 安装 Selenium pip
。
pip install Selenium
您必须为基于 Chromium 的浏览器安装 Chrome Webdriver,为 Firefox 浏览器安装 Gecko Driver。
以下是使用 Selenium 和 ChromeDriver 的示例:
from selenium import webdriver
# Specify the path to your ChromeDriver executable
driver = webdriver.Chrome(executable_path='/path/to/chromedriver')
# Open a webpage
driver.get("<https://www.example.com>")
# Perform actions (e.g., click a button, find elements, etc.)
print(driver.title) # Print the page title
# Close the browser
driver.quit()
For more, check the [documentation.](https://www.selenium.dev/documentation/)

感谢您的阅读。请提及您在工作场所经常使用的其他工具。
文章来源:https://dev.to/composiodev/9-must-know-open-source-tools-to-land-your-dream-job-in-2025-iki