AI Agent: Design Principles and Engineering Practice is an open-source book that explains how AI agents combine language models, context, and tools, with accompanying experiments and code. It is intended for readers studying the principles and engineering of AI agents, from fundamentals through production use. The catalogue skills support coding-agent work related to the book's subject matter.
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 skills add bojieli/ai-agent-book --skill curly-quote-sftgit clone --depth 1 https://github.com/bojieli/ai-agent-bookWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/bojieli/ai-agent-book/curly-quote-sft)<a href="https://agentmods.dev/skills/bojieli/ai-agent-book/curly-quote-sft"><img src="https://agentmods.dev/badge/skills/bojieli/ai-agent-book/curly-quote-sft/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/bojieli/ai-agent-book/curly-quote-sft"><img src="https://agentmods.dev/badge/skills/bojieli/ai-agent-book/curly-quote-sft.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What 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.1 | $0.00000 | $0.00638 |
| Opus 5 | $0.00000 | $0.00319 |
| Sonnet 5 | $0.00000 | $0.00128 |
| Haiku 4.5 | $0.00000 | $0.00064 |
Grade A, and why
curly-quote-sft 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 12d 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.
What it actually says
中文技术文档符号与引用规范
何时加载
- 编辑或生成同时包含中文、英文、Markdown 和代码的技术文档。
- 用户反馈引号、反引号或代码边界格式错误时。
符号定义
- ASCII 直引号:
"、';常用于英文标点和代码字符串。 - 中文弯引号:
“”、‘’;用于中文自然语言引用。 - Markdown 反引号:
`;用于行内代码和字面量。
决策优先级
- 先保护可执行代码、JSON/schema、URL、路径和用户要求原样保留的引用文本。
- 识别 Markdown 代码围栏、行内代码和代码注释边界。
- 在中文自然语言作用域中,把成对的直引号改为弯引号,并正确处理嵌套引用。
- 英文原文保持原文标点;英文标识符是否使用反引号由其是否为代码字面量决定,而不是由语言决定。
- 无法判断作用域时保留原文并请求澄清,不做全局替换。
正反例约束
- 正例:
# 中文注释:显示 "状态"→# 中文注释:显示 “状态”;同一代码块中的name = "status"、const name = "status"、SQL 标识符和 JSON 键值保持 ASCII 语法。 - 反例:不能把代码字符串、JSON、URL、路径、英文原句或 Markdown 行内代码中的
"/'改成弯引号;不能因为文件是中文就全局替换。 - 每种编程语言至少提供“该改的中文注释”和“该留的可执行字面量”成对样本,并在留出/边界集更换体裁、变量名和代码结构。
数据质量门禁
- 合成数据先按文章体裁、作用域类型和编程语言分层,再切分 train/eval/boundary,禁止 ID 和模板组合重叠。
- 机器门禁检查未解析变量、代码围栏、非注释代码行漂移和保护区;人工抽查每个分层的首条样本,记录在
validation/manual_audit.md。 - 任何语言类别的保护区或语法门禁失败,都应回到 Skill/数据蓝图修订后重训,不能只增加 epoch 或汇报总体平均分。
验证
- 修改必须是最小编辑,正文事实和代码内容不变。
- Markdown、JSON 和代码语法检查必须通过。
- 英文原文、代码和保护区域做字节级回归。
- 记录来源 Bad Case、适用范围、例外和验证结果。
What ships with it
17 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- data/boundary.jsonl 209 KB
- data/eval.jsonl 205 KB
- data/train.jsonl 818 KB
- evaluate.py 3.6 KB runs code
- generate_data.py 8.4 KB runs code
- quality_audit.py 2.6 KB runs code
- README.md 2.2 KB
- tests/__init__.py 0 B runs code
- tests/test_curly_pipeline.py 2.6 KB runs code
- train_sft.py 5.1 KB runs code
- validation/eval_adapted_boundary.json 173 KB
- validation/eval_adapted_eval.json 169 KB
- validation/eval_base_eval.json 141 KB
- validation/manifest.json 6.6 KB
- validation/manual_audit.md 973 B
- validation/quality_audit.json 266 B
- validation/train_20260808T040644Z/training_receipt.json 690 B
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.
- 12d ago First seen · 40 lines · 0 tokens per session scan A 848bcc4a242d
curly-quote-sft is a skill published in the GitHub repository bojieli/ai-agent-book (45,556 stars, last pushed yesterday), licensed Apache-2.0. It costs nothing until one of its globs matches a file; then it loads 638 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 skills, from other repositories
tura
Work in the Tura agent-runtime repository. Use for Tura architecture, Rust backend, GUI/TUI, prompts, commands, providers, sessions, documentation, tests, packaging, and release work in this directory.
acontext-installer
Install Acontext, Login & Init Acontext Project, Add Skill Memory to Agent.
remem-mcp
Long-term memory for coding agents. Auto-applies at the start of any coding task — recall past context before answering, capture decisions/learnings/fixes after work, use CodeGraph instead of grep for symbol lookup. Invoke when you see [remem-mcp] in your context or when starting any non-trivial coding work.
ccc
This skill should be used when code search is needed (whether explicitly requested or as part of completing a task), when indexing the codebase after changes, or when the user asks about ccc, cocoindex-code, or the codebase index. Trigger phrases include 'search the codebase', 'find code related to', 'update the…
system-monitor
Monitor system health: CPU, memory, disk, processes, and network. Alert on thresholds via any channel.
00-init
Turns AIDD measurement on for a project, proves it is recording, lets a person opt into (or out of) naming themselves on their own records, and removes what was measured when asked. Use when the user wants to start measuring what their work costs, wants to stop, asks why nothing is being recorded, wants their own name…