r/aiagents 线程显示了 2026 年模式:编码代理引用开放的 GitHub 问题以及答案中的确切文档部分。本教程使用 Scavio 的 SERP 以及 site:github.com 和 site:docs.* 运算符构建该代理。
前置条件
- Python 3.10+
- Scavio API 密钥
- LLM API 密钥(Anthropic 或 OpenAI)
操作指南
步骤 1: 构建 GitHub 问题工具
site:github.com/ORG/REPO/issues 返回实时问题跟踪器数据。
Python
import requests, os
API_KEY = os.environ['SCAVIO_API_KEY']
def github_issues(repo, query):
r = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY},
json={'query': f'site:github.com/{repo}/issues {query}', 'num_results': 10})
return r.json().get('organic_results', [])步骤 2: 构建文档搜索工具
site:docs.prisma.io 或与官方文档类似的限制。
Python
def docs_search(domain, query):
r = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY},
json={'query': f'site:{domain} {query}', 'num_results': 10})
return r.json().get('organic_results', [])步骤 3: 编写代理循环
两个工具并行运行,结果在答案合成之前合并。
Python
import anthropic
client = anthropic.Anthropic()
def research(repo, docs_domain, question):
issues = github_issues(repo, question)
docs = docs_search(docs_domain, question)
context = '\n'.join([f"ISSUE: {i['title']} {i['link']}" for i in issues[:5]])
context += '\n\n' + '\n'.join([f"DOC: {d['title']} {d['link']}" for d in docs[:5]])
msg = client.messages.create(
model='claude-sonnet-4-6',
max_tokens=1024,
messages=[{'role': 'user', 'content': f'{question}\n\n{context}'}])
return msg.content[0].text步骤 4: 用真题进行测试
指向您知道的图书馆和存储库。
Python
print(research('prisma/prisma', 'prisma.io', 'why does migrate dev hang on postgres?'))步骤 5: 添加新鲜度过滤器
优先选择过去 90 天内的问题。
Python
from datetime import datetime, timedelta
def recent_issues(items):
cutoff = datetime.now() - timedelta(days=90)
# Assume each item includes date; filter accordingly
return itemsPython 示例
Python
import os, requests
API_KEY = os.environ['SCAVIO_API_KEY']
def coding_research(repo, question):
r = requests.post('https://api.scavio.dev/api/v1/search',
headers={'x-api-key': API_KEY},
json={'query': f'site:github.com/{repo}/issues {question}'})
return r.json().get('organic_results', [])
print(coding_research('prisma/prisma', 'migrate dev hangs'))JavaScript 示例
JavaScript
const API_KEY = process.env.SCAVIO_API_KEY;
export async function codingResearch(repo, question) {
const r = await fetch('https://api.scavio.dev/api/v1/search', {
method: 'POST',
headers: { 'x-api-key': API_KEY, 'Content-Type': 'application/json' },
body: JSON.stringify({ query: `site:github.com/${repo}/issues ${question}` })
});
return (await r.json()).organic_results || [];
}预期输出
JSON
Agent answers with inline citations to open GitHub issues and exact doc sections. Cuts debugging time materially for known-library bugs.