跳到正文
GitHub·· 7 天前AI 评分22

Octavus 发布 JavaScript SDK,用于构建 AI 智能体应用

octavus-ai/agent-sdk

AI 导读

Octavus AI 开源官方 JavaScript/TypeScript SDK,用于构建 Octavus AI 智能体应用,包含 @octavus/core、@octavus/server-sdk、@octavus/client-sdk、@octavus/react、@octavus/cli 和 @octavus/docs 六个包。

正文

Octavus JavaScript SDK

Official JavaScript/TypeScript SDKs for building applications with Octavus AI agents.

Packages

Package Description npm
@octavus/core Shared types and utilities npm
@octavus/server-sdk Server SDK for backend integration npm
@octavus/client-sdk Framework-agnostic client SDK npm
@octavus/react React hooks and bindings npm
@octavus/cli CLI for agent management npm
@octavus/docs Documentation content npm

Quick Start

Server-Side (Node.js)

npm install @octavus/server-sdk
import { OctavusClient } from '@octavus/server-sdk';

const client = new OctavusClient({
  apiKey: process.env.OCTAVUS_API_KEY,
});

// Create a session
const { sessionId } = await client.agentSessions.create('your-agent-id', {
  COMPANY_NAME: 'Acme Inc',
});

// Attach to session and trigger
const session = client.session(sessionId, {
  tools: {
    'get-user-account': async ({ userId }) => {
      return { name: 'John Doe', email: 'john@example.com' };
    },
  },
});

// Execute a trigger and stream the response
const stream = await session.trigger('user-message', {
  USER_MESSAGE: 'Hello!',
});

for await (const event of stream) {
  if (event.type === 'text-delta') {
    process.stdout.write(event.delta);
  }
}

Client-Side (React)

npm install @octavus/react
import { useOctavusChat, createHttpTransport } from '@octavus/react';

function Chat({ sessionId }) {
  const transport = useMemo(
    () =>
      createHttpTransport({
        triggerRequest: (triggerName, input) =>
          fetch('/api/trigger', {
            method: 'POST',
            headers: { 'Content-Type': 'application/json' },
            body: JSON.stringify({ sessionId, triggerName, input }),
          }),
      }),
    [sessionId],
  );

  const { messages, status, send } = useOctavusChat({ transport });

  return (
    <div>
      {messages.map((msg) => (
        <div key={msg.id}>{/* Render message parts */}</div>
      ))}
      <button onClick={() => send('user-message', { USER_MESSAGE: 'Hello' })}>Send</button>
    </div>
  );
}

Documentation

Full documentation is available at octavus.ai/docs.

Development

Prerequisites

Setup

# Install dependencies
pnpm install

# Build all packages
pnpm build

# Run linting
pnpm lint

# Run type checking
pnpm type-check

# Format code
pnpm format

Package Structure

packages/
├── core/           # Shared types for client/server communication
├── server-sdk/     # Server SDK for backend integration
├── client-sdk/     # Framework-agnostic client SDK
├── react/          # React bindings (hooks)
├── cli/            # CLI for agent management
└── docs/           # Documentation content

Contributing

We welcome contributions! Please see our Contributing Guide for details.

License

MIT © Octavus AI

来源:GitHub · github.com