소스 정보
- 저장소
- infometa/workbuddyskills
- 최근 소스 활동
- 2026년 7월 21일 03:35
- 감지된 SKILL.md 언어
- 중국어
- 스타
- 205
- 포크
- 65
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/infometa/workbuddyskills --skill external-api명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
快速生成公司一页纸概览(Tearsheet),涵盖业务描述、关键财务、估值、股东结构和近期催化。 触发词:公司速览、tearsheet、公司概况、一页纸、公司简介、company overview、快速了解、公司画像
构建DCF现金流折现模型和三表财务模型(利润表、资产负债表、现金流量表联动)。 触发词:DCF、现金流折现、财务建模、三表模型、估值模型、WACC、自由现金流、financial model、valuation model
盈利分析技能,支持两种模式: - Preview 模式:业绩发布前的前瞻分析、情景假设、关键观测指标 - Analysis 模式:业绩发布后的深度解读、Beat/Miss 分析、估计修正 触发词:earnings analysis、earnings preview、业绩分析、业绩前瞻、财报分析、季报解读、pre-earnings、post-earnings、Q1/Q2/Q3/Q4 results
SOC 직업 분류 기준
SKILL.md 표시 중
| name | external-api |
| description | 外部 API 服务调用技能。安全管理 API 密钥,调用第三方 AI 服务生成资产。 支持 3D 模型、贴图、音频等资产的 AI 生成。 |
| version | 1.0.0 |
| dependencies | ["file-manager"] |
| triggers | [{"pattern":"生成模型|生成贴图|生成音效|AI生成|外部API"}] |
| inputs | [{"name":"service","type":"string","enum":["meshy","tripo3d","stable_diffusion","leonardo","suno","elevenlabs"],"required":true},{"name":"prompt","type":"string","required":true}] |
| outputs | [{"name":"asset_path","type":"string","description":"生成的资产文件路径"}] |
提供第三方 AI 服务的安全调用能力,用于生成游戏资产。
.env.template 为 .env.local.env.local 已添加到 .gitignore# ===== 3D 模型生成服务 =====
MESHY_API_KEY=your_meshy_api_key_here
TRIPO3D_API_KEY=your_tripo3d_api_key_here
# ===== 贴图生成服务 =====
SD_API_KEY=your_stable_diffusion_api_key_here
SD_API_ENDPOINT=https://api.stability.ai
LEONARDO_API_KEY=your_leonardo_api_key_here
# ===== 音频生成服务 =====
SUNO_API_KEY=your_suno_api_key_here
ELEVENLABS_API_KEY=your_elevenlabs_api_key_here
# ===== 通用配置 =====
API_TIMEOUT=60
API_RETRY_COUNT=3
调用任何外部服务前,先检查密钥配置状态:
interface KeyStatus {
service: string;
configured: boolean;
masked_key?: string; // 如 "sk-****abcd"
}
function checkApiKeys(): KeyStatus[] {
return [
{ service: "MESHY", configured: !!process.env.MESHY_API_KEY },
{ service: "STABLE_DIFFUSION", configured: !!process.env.SD_API_KEY },
{ service: "SUNO", configured: !!process.env.SUNO_API_KEY },
// ...
];
}
用途:文本到 3D 模型生成
API 调用示例:
interface MeshyRequest {
prompt: string; // 模型描述
art_style: string; // "realistic" | "cartoon" | "low-poly" | "sculpture"
negative_prompt?: string; // 排除元素
topology: string; // "quad" | "triangle"
target_polycount: number; // 目标面数
}
interface MeshyResponse {
task_id: string;
status: "pending" | "processing" | "completed" | "failed";
model_url?: string; // glTF/GLB 下载地址
thumbnail_url?: string;
}
async function generateModel(request: MeshyRequest): Promise<MeshyResponse> {
const response = await fetch("https://api.meshy.ai/v1/text-to-3d", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.MESHY_API_KEY}`,
"Content-Type": "application/json"
},
: .(request)
});
response.();
}
Godot 兼容格式:.glb, .gltf
用途:高质量 3D 模型生成(备选)
API 调用示例:
interface Tripo3DRequest {
prompt: string;
style: string; // "game-ready" | "high-poly" | "stylized"
}
用途:2D 贴图、UI 素材、概念图生成
API 调用示例:
interface SDRequest {
prompt: string;
negative_prompt?: string;
width: number; // 512, 768, 1024
height: number;
steps: number; // 20-50
cfg_scale: number; // 7-12
seed?: number;
}
async function generateTexture(request: SDRequest): Promise<Buffer> {
const response = await fetch(`${process.env.SD_API_ENDPOINT}/v1/generation/stable-diffusion-xl-1024-v1-0/text-to-image`, {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.SD_API_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
text_prompts: [{ text: request.prompt, weight: 1 }],
cfg_scale: request.cfg_scale,
width: request.width,
: request.,
: request.
})
});
data = response.();
.(data.[]., );
}
常用提示词模板:
| 贴图类型 | 提示词模板 |
|---|---|
| 无缝贴图 | seamless tileable {material} texture, top-down view, 4k, pbr |
| 像素风格 | pixel art {subject}, 16x16 sprite, transparent background |
| UI 图标 | game UI icon of {item}, flat design, transparent background |
| 角色立绘 | {character} character portrait, game art style, detailed |
用途:风格化贴图生成(备选)
用途:背景音乐生成
API 调用示例:
interface SunoRequest {
prompt: string; // 音乐描述
duration: number; // 秒数 (最大 120)
genre?: string; // "orchestral" | "electronic" | "ambient" ...
mood?: string; // "epic" | "peaceful" | "tense" ...
}
interface SunoResponse {
task_id: string;
status: string;
audio_url?: string; // MP3/WAV 下载地址
}
常用音乐提示词:
| 场景 | 提示词模板 |
|---|---|
| 主菜单 | epic orchestral main menu theme, game music, loop-ready |
| 战斗 | intense battle music, fast drums, orchestral, game soundtrack |
| 探索 | ambient exploration music, mysterious, calm, atmospheric |
| Boss战 | boss battle theme, dramatic, intense, choir, orchestral |
用途:语音合成(NPC 对话、旁白)
API 调用示例:
interface VoiceRequest {
text: string;
voice_id: string;
model_id: string; // "eleven_multilingual_v2"
voice_settings: {
stability: number; // 0-1
similarity_boost: number;
};
}
async function generateVoice(request: VoiceRequest): Promise<Buffer> {
const response = await fetch(`https://api.elevenlabs.io/v1/text-to-speech/${request.voice_id}`, {
method: "POST",
headers: {
"xi-api-key": process.env.ELEVENLABS_API_KEY,
"Content-Type": "application/json"
},
body: JSON.stringify(request)
});
return Buffer.from(await response.arrayBuffer());
}
async function downloadAsset(url: string, localPath: string): Promise<boolean> {
const response = await fetch(url);
const buffer = await response.arrayBuffer();
// 写入到项目 assets 目录
await fs.writeFile(localPath, Buffer.from(buffer));
return true;
}
下载完成后,通过 MCP 工具通知 Godot 刷新资源:
// 刷新文件系统
await callMcpTool("execute_editor_script", {
script: `EditorInterface.get_resource_filesystem().scan()`
});
| 错误码 | 含义 | 处理方式 |
|---|---|---|
| 401 | API Key 无效 | 提示用户检查 .env.local 配置 |
| 402 | 余额不足 | 提示用户充值或更换服务 |
| 429 | 请求过于频繁 | 等待后重试,增加间隔 |
| 500 | 服务器错误 | 重试或使用备选服务 |
| timeout | 请求超时 | 增加超时时间或重试 |
async function withRetry<T>(
fn: () => Promise<T>,
maxRetries: number = 3,
delay: number = 1000
): Promise<T> {
for (let i = 0; i < maxRetries; i++) {
try {
return await fn();
} catch (error) {
if (i === maxRetries - 1) throw error;
await new Promise(r => setTimeout(r, delay * (i + 1)));
}
}
throw new Error("Max retries exceeded");
}
| 服务 | 单次调用成本 | 说明 |
|---|---|---|
| Meshy.ai | ~$0.20 | 单个 3D 模型 |
| Stable Diffusion | ~$0.01 | 单张图片 |
| Suno | ~$0.10 | 2分钟音乐 |
| ElevenLabs | ~$0.03 | 1000字符语音 |
建议: