Cookbook
最も一般的な連携のコピペレシピ集。いずれも完全に実行可能な例です——ツールやモデルを自ら結線する必要はなく、プラットフォームが自動ルーティングし、ツールを自動で呼び出し、結果をストリーミングします。
1. ワンラインエージェント(まずはここから)
可能な限りシンプルな連携——タスクを送り、ストリーミングされる回答を読み取ります。プラットフォームがモデルを選び、タスクに必要なツール(Web 検索、あなたのナレッジベース、コード……)を呼び出し、結果を返します。本ドキュメントの他の内容はすべて、これの任意の改良です。
curl -N https://nexevo.ai/v1/workspaces/$NEXEVO_WORKSPACE/agent/runs \
-H "Authorization: Bearer $NEXEVO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"task": "Summarize today's top AI news in 3 bullets."}'
# -> {"run_id":"…","trace_id":"…"} (then tail /agent/runs/{run_id}/attach for the result)import json, os, requests
WS = os.environ["NEXEVO_WORKSPACE"]
KEY = os.environ["NEXEVO_API_KEY"]
# 1. start the run
r = requests.post(
f"https://nexevo.ai/v1/workspaces/{WS}/agent/runs",
headers={"Authorization": f"Bearer {KEY}"},
json={"task": "Summarize today's top AI news in 3 bullets."},
)
run_id = r.json()["run_id"]
# 2. read the streamed result
stream = requests.get(
f"https://nexevo.ai/v1/workspaces/{WS}/agent/runs/{run_id}/attach",
headers={"Authorization": f"Bearer {KEY}"},
stream=True,
)
for line in stream.iter_lines():
if not line or not line.startswith(b"data: "):
continue
payload = line[6:]
if payload == b"[DONE]":
break
event = json.loads(payload)
if event.get("type") == "run_end":
print(event["final_text"])2. OpenAI SDK の使用(書き換えゼロ)
すでに OpenAI や Anthropic の SDK をお使いですか?ベース URL と API キーの 2 行を変更するだけで Nexevo を指せます。既存のコードはそのまま動作し、スマートルーティングと課金が追加コストなしで得られます。
from openai import OpenAI
client = OpenAI(
base_url="https://nexevo.ai/v1",
api_key=os.environ["NEXEVO_API_KEY"], # your Nexevo workspace key
)
resp = client.chat.completions.create(
model="nexevo-auto", # let Nexevo's router pick the model
messages=[{"role": "user", "content": "Explain SEPA Instant in two sentences."}],
)
print(resp.choices[0].message.content)モデルに nexevo-auto を指定してルーターに選ばせるか、明示的なモデル id を渡してください。Anthropic SDK とストリーミングについては互換性ガイドを参照してください。
3. 自社ナレッジベースへのクエリ
ドキュメントをプロジェクトに一度アップロードすれば、その後は質問できます。エージェントはあなたのナレッジに対して自動で rag_search を使います——別途ベクトル DB や検索パイプラインを構築する必要はありません。
# run an agent against a project's knowledge base
curl https://nexevo.ai/v1/workspaces/$NEXEVO_WORKSPACE/agent/runs \
-H "Authorization: Bearer $NEXEVO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"task": "What is our refund policy for annual plans?",
"project_id": "'"$PROJECT_ID"'"
}'4. スペシャリストロールでの実行
persona_slug を渡すことで、エージェントにドメインのアイデンティティ——法務レビューアー、データアナリスト、ブランドガーディアン——を付与します。ロールは推論方法を形作り、ツールは完全に利用可能なままです。
curl https://nexevo.ai/v1/workspaces/$NEXEVO_WORKSPACE/agent/runs \
-H "Authorization: Bearer $NEXEVO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"task": "Audit our privacy policy for GDPR compliance gaps.",
"persona_slug": "legal-privacy-counsel"
}'利用可能なロールは GET /v1/workspaces/{workspace_id}/skill-library で一覧表示します(kind: "agency" で絞り込み)。スペシャリストロールを参照してください。
5. スケジュール済みのリサーチダイジェスト
繰り返しの UTC cron スケジュールでタスクを実行します——デイリーのニュースダイジェスト、週次の競合レポートなど。各発火は通常の agent run であり、webhook と組み合わせれば完了時に通知を受け取れます。
# every weekday at 9:00 UTC
curl https://nexevo.ai/v1/workspaces/$NEXEVO_WORKSPACE/schedules \
-H "Authorization: Bearer $NEXEVO_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Daily competitor digest",
"cron_expr": "0 9 * * 1-5",
"task_text": "Find yesterday's top 3 moves from our competitors and summarize each.",
"budget_usd": 0.3
}'6. メモリ付きマルチターンチャット
やり取りをする会話には、conversation スレッドと合わせてチャットエンドポイントを使います。コンテキストはターンをまたいで自動的に引き継がれます。
# create a conversation, then chat into it
curl https://nexevo.ai/v1/workspaces/$NEXEVO_WORKSPACE/conversations \
-H "Authorization: Bearer $NEXEVO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"title": "Q3 planning"}'
# -> {"id": "conv_…", ...}
curl -N https://nexevo.ai/v1/workspaces/$NEXEVO_WORKSPACE/conversations/conv_…/messages \
-H "Authorization: Bearer $NEXEVO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"role": "user", "content": "What were our Q2 highlights?"}'エージェントにすべての conversation で事実を記憶させたいですか?memory に一度保存すれば、エージェントは毎回の run で関連するコンテキストを自動的に思い出します。