Loading...
Loading...
Compare original and translation side by side
npm install @polpo-ai/sdknpm install @polpo-ai/sdkimport { PolpoClient } from "@polpo-ai/sdk";
// baseUrl is the root URL — SDK appends /v1/ internally.
// Do NOT add /v1/ or /api/v1/ to baseUrl.
const polpo = new PolpoClient({
baseUrl: "https://api.polpo.sh", // local dev: http://localhost:3890
apiKey: process.env.POLPO_API_KEY,
});import { PolpoClient } from "@polpo-ai/sdk";
// baseUrl为根地址 — SDK会在内部自动拼接/v1/
// 请勿在baseUrl中添加/v1/或/api/v1/前缀
const polpo = new PolpoClient({
baseUrl: "https://api.polpo.sh", // 本地开发地址: http://localhost:3890
apiKey: process.env.POLPO_API_KEY,
});const response = await polpo.chatCompletion({
agent: "coder",
messages: [{ role: "user", content: "Write a fibonacci function" }],
});
console.log(response.choices[0].message.content);const response = await polpo.chatCompletion({
agent: "coder",
messages: [{ role: "user", content: "Write a fibonacci function" }],
});
console.log(response.choices[0].message.content);const stream = await polpo.chatCompletionStream({
agent: "coder",
messages: [{ role: "user", content: "Explain recursion" }],
});
// stream.sessionId — persisted session ID from server
for await (const chunk of stream) {
const delta = chunk.choices[0]?.delta?.content;
if (delta) process.stdout.write(delta);
}const stream = await polpo.chatCompletionStream({
agent: "coder",
messages: [{ role: "user", content: "Explain recursion" }],
});
// stream.sessionId — 服务端返回的持久化会话ID
for await (const chunk of stream) {
const delta = chunk.choices[0]?.delta?.content;
if (delta) process.stdout.write(delta);
}sessionId// List sessions
const sessions = await polpo.listChatSessions();
// Get messages from a session
const { session, messages } = await polpo.getChatSessionMessages(sessionId);
// Continue a session
const stream = await polpo.chatCompletionStream({
agent: "coder",
sessionId: existingSessionId,
messages: [{ role: "user", content: "Now refactor it" }],
});sessionId// 列出会话
const sessions = await polpo.listChatSessions();
// 获取单个会话的消息内容
const { session, messages } = await polpo.getChatSessionMessages(sessionId);
// 延续会话
const stream = await polpo.chatCompletionStream({
agent: "coder",
sessionId: existingSessionId,
messages: [{ role: "user", content: "Now refactor it" }],
});// List agents
const agents = await polpo.getAgents();
// Create agent
await polpo.addAgent({
name: "reviewer",
role: "Code reviewer",
model: "xai:grok-4-fast",
allowedTools: ["bash", "read", "grep"],
systemPrompt: "You review code for bugs and security issues.",
});
// Update agent
await polpo.updateAgent("reviewer", { model: "anthropic:claude-sonnet-4" });// 列出所有Agent
const agents = await polpo.getAgents();
// 创建Agent
await polpo.addAgent({
name: "reviewer",
role: "Code reviewer",
model: "xai:grok-4-fast",
allowedTools: ["bash", "read", "grep"],
systemPrompt: "You review code for bugs and security issues.",
});
// 更新Agent配置
await polpo.updateAgent("reviewer", { model: "anthropic:claude-sonnet-4" });// Project memory (shared across all agents)
const { content } = await polpo.getMemory();
await polpo.saveMemory("# Project Context\n\nThis is a Next.js e-commerce app...");
// Agent memory (private to one agent)
const agentMem = await polpo.getAgentMemory("coder");
await polpo.saveAgentMemory("coder", "Prefers TypeScript, uses Vitest for tests.");// 项目记忆(所有Agent共享)
const { content } = await polpo.getMemory();
await polpo.saveMemory("# Project Context\n\nThis is a Next.js e-commerce app...");
// Agent专属记忆(仅单个Agent可访问)
const agentMem = await polpo.getAgentMemory("coder");
await polpo.saveAgentMemory("coder", "Prefers TypeScript, uses Vitest for tests.");// Register a webhook
await polpo.registerWebhook({
url: "https://myapp.com/webhook",
events: ["task:*", "mission:completed"],
});// 注册Webhook
await polpo.registerWebhook({
url: "https://myapp.com/webhook",
events: ["task:*", "mission:completed"],
});import { EventSourceManager } from "@polpo-ai/sdk";
const sse = new EventSourceManager({
baseUrl: "https://api.polpo.sh",
apiKey: process.env.POLPO_API_KEY,
});
sse.connect({ filter: "task:*" });
sse.on("task:transition", (data) => {
console.log(`Task ${data.id}: ${data.from} → ${data.to}`);
});import { EventSourceManager } from "@polpo-ai/sdk";
const sse = new EventSourceManager({
baseUrl: "https://api.polpo.sh",
apiKey: process.env.POLPO_API_KEY,
});
sse.connect({ filter: "task:*" });
sse.on("task:transition", (data) => {
console.log(`任务 ${data.id}: ${data.from} → ${data.to}`);
});TaskAgentConfigMissionSessionChatCompletionRequestChatCompletionResponseTaskAgentConfigMissionSessionChatCompletionRequestChatCompletionResponse