對於科技來說,這將是激動人心的一年,我們可能會看到跨多個領域、人工智慧工具、框架、資料庫等的突破性成就,
因此,我策劃了一些您必須用來建立下一個大型專案的開源工具。
2025 年將是人工智慧代理年。然而,AI 代理與它們擁有的工具一樣有用,Composio 是領先的平台,為您的 AI 代理提供工具和集成,以便與 GitHub、Gmail 等外部應用程式進行通訊。
將 Composio 視為代理和應用程式之間的橋接層。例如,使用Composio,您可以加入Gmail、日曆、Meet、Notion 等來建立一個代理,該代理可以總結您的會議、建立操作點、更新您的日曆(如果需要)以及向適當的與會者發送電子郵件。
開始使用它非常簡單。
npm install composio-core openai
連結您的 GitHub 帳戶
import { Composio } from "composio-core";
const client = new Composio({ apiKey: "<your-api-key>" });
const entity = await client.getEntity("Jessica");
const connection = await entity.initiateConnection({appName: 'github'});
console.log(`Open this URL to authenticate: ${connection.redirectUrl}`);
初始化 Composition 和 OpenAI
import { OpenAI } from "openai";
import { OpenAIToolSet } from "composio-core";
const openai_client = new OpenAI();
const composio_toolset = new OpenAIToolSet();
取得 GitHub 操作並將其傳遞給 LLM
const tools = await composio_toolset.getTools({
actions: ["github_star_a_repository_for_the_authenticated_user"]
});
const instruction = "Star the repo composiohq/composio on GitHub";
const response = await openai_client.chat.completions.create({
model: "gpt-4o",
messages: [{ role: "user", content: instruction }],
tools: tools,
tool_choice: "auto",
});
執行工具呼叫。
const result = await composio_toolset.handleToolCall(response);
console.log(result);
該文件提供了有關 Composio、其工作以及製作可用於生產的代理的重要概念的更多資訊。
https://dub.composio.dev/77b7JH5 為 Composio 儲存庫加註星標 ⭐
Encore 是您應該考慮使用的後端框架。它消除了雲端開發以及雲端基礎設施設定和管理的所有麻煩,從 API 文件到資料庫配置、服務發現到部署管道、監控到跟踪,讓您專注於編寫應用程式程式碼。
Encore 就像在您的工作流程中內建了一位 DevOps 專家 - 您專注於編寫 TypeScript 或 Go 程式碼。同時,它處理幕後的所有複雜基礎設施,從資料庫管理到微服務部署。它將複雜的雲端開發轉變為簡單、可維護的程式碼。
透過安裝 CLI 開始使用 Encore。
curl -L https://encore.dev/install.sh | bash
建立一個應用程式。
encore app create
這將配置您的免費帳戶,允許您選擇應用程式的名稱,並選擇Hello World
範本。
這將使用您選擇的應用程式名稱建立一個包含範例應用程式和簡單 REST API 的新資料夾。
在編輯器中開啟該檔案。
// Service hello implements a simple hello world REST API.
package hello
import (
"context"
)
// This simple REST API responds with a personalized greeting.
//
//encore:api public path=/hello/:name
func World(ctx context.Context, name string) (*Response, error) {
msg := "Hello, " + name + "!"
return &Response{Message: msg}, nil
}
type Response struct {
Message string
}
有關更多訊息,請參閱他們的文件。
將其視為您在雲端的個人 JavaScript 遊樂場。 Val Town 允許您編寫和部署作為 API 或自動化執行的程式碼片段,而無需處理伺服器或基礎架構。它非常適合快速原型或自動化重複任務。
建立一個新的值:
// @username/greet
export function greet(name) {
return `Hello, ${name}!`
}
導入並使用別人的Vals:
import { greet } from "@friend/greet"
export function welcome() {
return greet("Val Town")
}
每個 Val 都是一個 API 端點,可以像 cron 作業一樣進行排程。它非常適合自動化、機器人和快速實驗!
如果您曾經在無伺服器環境中管理 PostgreSQL 資料庫時遇到困難,您可能聽說過 Neon。它的特別之處在於它為資料庫帶來了類似 Git 的分支,讓您可以建立資料庫的即時副本以進行測試或開發。
它非常適合現代開發工作流程,您希望在不弄亂生產資料的情況下測試變更。
Rustify 是一個用 Rust 編寫的小型函式庫,可以減輕建構 HTTP API 的負擔。它提供了endpoint
特徵和巨集幫助器,允許對各種遠端端點進行模板化。非同步和同步客戶端都可以針對端點執行請求,並且可以選擇使用Client
特徵來實現自訂客戶端。
基本範例
use rustify::{Client, Endpoint};
use rustify_derive::Endpoint;
// Defines an API endpoint at /test/path that takes no inputs and returns an
// empty response.
#[derive(Endpoint)]
#[endpoint(path = "test/path")]
struct Test {}
let endpoint = Test {};
let client = Client::default("http://api.com"); // Configures base address of http://api.com
let result = endpoint.exec(&client).await; // Sends GET request to http://api.com/test/path
assert!(result.is_ok());
開發人員優先的後台作業框架,使處理排程任務和 Webhooks 變得自然。與傳統的作業佇列不同,Trigger.dev 具有內建的版本控制、重試和漂亮的儀表板來監控您的作業。
真正的魔力在於它的整合——您可以連接 GitHub、Stripe 或任何 API,而無需編寫樣板程式碼。它對於處理 Webhook 驅動的工作流程或執行資源密集型後台任務特別強大,而不會影響您的主應用程式。
# Install
npm install @trigger.dev/sdk
typescript
Copy
import { TriggerClient } from "@trigger.dev/sdk";
const client = new TriggerClient({
id: "my-app",
apiKey: process.env.TRIGGER_API_KEY,
});
// Create a scheduled job
client.defineJob({
id: "daily-cleanup",
name: "Daily Cleanup",
version: "1.0.0",
trigger: "schedule",
schedule: "0 0 * * *",
run: async (payload, io) => {
// Built-in integrations
await io.github.createIssue("org/repo", {
title: "Daily Cleanup Report",
body: "Cleanup completed successfully"
});
},
});
![Trigger](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/w8spslnv9fiq2669uy81.png)
Tolgee 是一個創新的開源在地化平台,正在改變開發人員處理應用程式翻譯的方式。它透過簡單的 ALT + 單擊介面直接在您的應用程式中實現上下文翻譯,無需編輯傳統的本地化檔案。
拼湊不同監控工具的日子已經一去不復返了。 OpenTelemetry 是可觀測性的瑞士軍刀,為您提供監控系統所需的一切。
它是一個綜合框架,可收集整個基礎架構中的追蹤、指標和日誌,使您能夠更輕鬆地了解複雜的分散式應用程式中發生的情況。無論是在 Kubernetes 中執行微服務還是傳統應用程式,OpenTelemetry 都提供了一種統一的方法來收集和分析性能資料,而無需鎖定供應商。
# Install for Node.js
npm install @opentelemetry/api @opentelemetry/sdk-node
import { NodeSDK } from '@opentelemetry/sdk-node'
import { trace } from '@opentelemetry/api'
const sdk = new NodeSDK()
sdk.start()
// Create a span
const tracer = trace.getTracer('my-app')
const span = tracer.startSpan('my-operation')
span.end()
建立需要理解和搜尋內容的人工智慧應用程式? ChromaDB 為您提供支援。它是一個開源嵌入資料庫,使向量搜尋變得輕而易舉。
開始使用它很容易。
pip install chromadb
import chromadb
client = chromadb.Client()
collection = client.create_collection("docs")
# Add documents
collection.add(
documents=["ChromaDB is awesome", "Vector databases are the future"],
ids=["1", "2"]
)
# Search
results = collection.query(
query_texts=["What's awesome?"],
n_results=1
)
專為邊緣建置的超輕量 Web 框架。雖然其他框架都是從伺服器開始的,但 Hono 是專門為 Cloudflare Workers 和 Deno Deploy 等邊緣運算平台而設計的。它速度快、佔用空間小,並提供熟悉的類似 Express 的 API。
開始使用它非常簡單。
npm create hono@latest
一個簡單的例子
import { Hono } from 'hono'
const app = new Hono()
app.get('/', (c) => c.text('Hono!'))
export default app
一個正在改變我們對 JavaScript 的看法的 Web 框架:Astro 預設提供閃電般快速的網站,向客戶端發送零 JavaScript,除非您明確需要它。它的與眾不同之處在於它的「島嶼架構」——你可以在同一個專案中混合和匹配 React、Vue 或 Svelte 元件,而 Astro 只會補充必要的部分。
這意味著您可以兩全其美:在您需要的地方使用動態元件,在其他地方使用靜態、超快的 HTML。非常適合需要選擇性互動的內容豐富的網站。
#create new project
npm create astro@latest
---
// pages/index.astro
const data = await fetch('api/posts').then(r => r.json())
---
<html>
<body>
{data.map(post => (
<article>
<h2>{post.title}</h2>
<p>{post.excerpt}</p>
</article>
))}
</body>
</html>
Grafbase 可讓您使用 TypeScript 定義 API 架構並處理所有後端複雜度。最酷的是它與現有工具的連接方式——從用於身份驗證的 Auth0 到用於文件存儲的 S3。
此外,它還會自動將您的 API 部署到邊緣,無論您的用戶身在何處,它的速度都非常快。對於想要現代 GraphQL 後端而又沒有操作難題的團隊來說,它是完美的選擇。
# Install Grafbase CLI
npm install -g grafbase
# Initialize a new project
grafbase init my-api
// schema.ts
type Post @model {
id: ID!
title: String!
content: String
author: User!
}
type User @model {
id: ID!
name: String!
posts: [Post]
}
Letta 是一個創新的人工智慧平台,為基於 LLM 的代理帶來先進的記憶功能。它成立於加州大學柏克萊分校的天空計算實驗室,使人工智慧代理能夠在互動過程中維護持久記憶和狀態。
建立代理
from letta import EmbeddingConfig, LLMConfig, create_client
client = create_client()
# set automatic defaults for LLM/embedding config
client.set_default_llm_config(LLMConfig.default_config(model_name="gpt-4"))
client.set_default_embedding_config(EmbeddingConfig.default_config(model_name="text-embedding-ada-002"))
# create a new agent
agent_state = client.create_agent()
print(f"Created agent with name {agent_state.name} and unique ID {agent_state.id}")
建立代理後,您可以向其發送訊息:
# Message an agent
response = client.send_message(
agent_id=agent_state.id,
role="user",
message="hello"
)
print("Usage", response.usage)
print("Agent messages", response.messages)
有關更多訊息,請查看文件。
感謝您的閱讀,再次祝您新年快樂。