Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add agents/geeksfino/openskills/guide.zhgit clone --depth 1 https://github.com/Geeksfino/openskillsWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00000 | $0.00823 |
| Opus 5 | $0.00000 | $0.00411 |
| Sonnet 5 | $0.00000 | $0.00165 |
| Haiku 4.5 | $0.00000 | $0.00082 |
Grade A, and why
GUIDE.zh scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 104 lines — stays where its author put it; the contents beside it link to each section on GitHub.
OpenSkills 代理集成指南
本指南展示了如何将 OpenSkills 运行时与流行的代理框架集成,以及如何将技能作为工具暴露给您的代理。
概述
OpenSkills:
- 从包含
SKILL.md的目录发现技能 - 支持渐进式信息披露(元数据 → 说明 → 资源)
- 在双沙箱方案中执行技能(WASM,以及 macOS 上可用的原生执行)
- 适用于 TypeScript 和 Python 绑定
集成模式
模式 A:单一工具(简单)
暴露一个工具,可以按 ID 执行任何技能。这是 with_langchain-python 和 with_vercel-ai-sdk 中最小示例使用的模式。
优点: 代码更少,接线更快
缺点: 代理必须在工具调用中提供 skill_id
模式 B:每个技能一个工具(推荐)
为每个技能暴露一个具有清晰描述的工具。这改进了代理推理和工具选择。LangChainJS 高级示例使用这种方法。
优点: 更好的工具选择和提示
缺点: 稍多的设置代码
模式 C:提示注入(推荐)
将技能元数据注入系统提示,以便代理能决定何时使用技能。
常见集成步骤
1) 初始化运行时
TypeScript
import { OpenSkillRuntime } from "@finogeek/openskills";
const runtime = OpenSkillRuntime.fromDirectory("./examples/skills");
runtime.discoverSkills();
Python
from openskills import OpenSkillRuntime
runtime = OpenSkillRuntime.from_directory("./examples/skills")
runtime.discover_skills()
2) 列出可用技能
TypeScript
const skills = runtime.listSkills();
skills.forEach((skill) => {
console.log(`${skill.id}: ${skill.description}`);
});
Python
skills = runtime.list_skills()
for skill in skills:
print(f"{skill['id']}: {skill['description']}")
3) 执行技能
TypeScript
const result = runtime.executeSkill("example-skill", {
input: JSON.stringify({ query: "hello" }),
timeout_ms: 5000,
});
console.log(result.outputJson);
Python
result = runtime.execute_skill(
"example-skill",
input={"query": "hello"},
timeout_ms=5000,
)
print(result.get("output", ""))
LangChainJS 高级模式(每个技能一个工具)
高级示例为每个技能构建一个工具,并将技能元数据注入系统提示:
- 工具创建助手:
with_langchain-js/src/openskills-tool.ts - 代理示例:
with_langchain-js/src/advanced-agent.ts
最佳实践
- 在启动时发现技能一次
- 在提示中使用技能元数据以改进选择
- 对于生产代理,倾向于使用每个技能的工具
- 在
examples/skills中保存技能,构建后的工件放在wasm/中
故障排除
- "技能未找到":检查
examples/skills/<skill>/SKILL.md - "WASM 模块未找到":在技能文件夹中运行
openskills build - 缺少 API 密钥:设置
OPENAI_API_KEY或ANTHROPIC_API_KEY
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago First seen · 104 lines · 0 tokens per session scan A 7217e80bf6d5
GUIDE.zh is an agent published in the GitHub repository Geeksfino/openskills (70 stars, last pushed 5d ago), licensed Apache-2.0. It costs nothing until one of its globs matches a file; then it loads 823 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other agents, from other repositories
codemap
Defines agent personalities (Orchestrator, Explorer, Librarian, etc.) and manages their configuration lifecycle. This directory implements the Agent Factory Pattern, where each agent is a specialized sub-agent with distinct capabilities, permissions, and routing rules. The Orchestrator agent (src/agents/index.ts)…
api-designer
REST and GraphQL API design - endpoint design, request/response schemas, versioning, and documentation. Use for designing new APIs or evolving existing ones.
shep-web-route-creator
Scaffolds ONE new Next.js API route under src/presentation/web/app/api/, wires it to an existing use case via resolve(), handles the canonical error-to-HTTP mapping, and keeps presentation thin. Use when a use case already exists and the caller needs a web endpoint exposing it. Does NOT create the use case, does NOT…
python-pro
Python 3.13 language expert for the ClosedLoop plugin monorepo. Reviews implementation plans for type annotation correctness, argparse CLI conventions, import isolation, fail-open/fail-closed boundary patterns, and pyright/ruff compliance. Produces type-patterns.md in legacy mode.
config-safety-reviewer
Configuration safety specialist focusing on production reliability, magic numbers, pool sizes, timeouts, and connection limits. Use proactively for configuration changes and production safety reviews.
Audit
Deep security + performance audit of a specific diff. Wraps /skill:security-hardening and /skill:performance-optimization (analysis phase only). Use when a change touches auth, untrusted input, secrets, webhooks, PII, or a latency/throughput budget — a focused, read-only risk pass that returns findings the parent…