DeepAgents 内容生成 Agent 实战:以 AGENTS.md + Skills + Subagents 三原语构建博客与社媒写作工作流
导读
本文基于 DeepAgents 仓库中的 Content Builder Agent 示例,完整拆解如何只用磁盘上的三个文件原语(Memory、Skills、Subagents)配置出一个能自动完成「研究 → 写作 → 配图」全流程的内容创作智能体。读完本文,你将掌握 create_deep_agent 的 memory / skills / subagents 三个核心参数的真实用法、Skill 的 YAML frontmatter 规范、以及如何自定义品牌语气、新增内容类型与图像生成工具,并看到这些能力在 DeepAgents 中间件源码中的实现原理。
一、示例概览:一个"配置驱动"的内容写作 Agent
examples/content-builder-agent 是一个用 DeepAgents 构建的内容写作 Agent 示例,能够撰写博客文章(Blog Post)、LinkedIn 帖文与 Twitter 推文,并自动生成配套封面图。其核心设计理念是:
Agent 由磁盘上的文件配置,而不是由代码配置。
整个示例通过三个文件系统原语定义 Agent 的能力:
| 原语 | 载体 | 用途 | 加载时机 |
|---|---|---|---|
| Memory(记忆) | AGENTS.md |
品牌语气、写作标准等持久上下文 | 始终加载(注入 system prompt) |
| Skills(技能) | skills/*/SKILL.md |
针对特定任务的工作流 | 按需加载(progressive disclosure) |
| Subagents(子代理) | subagents.yaml |
委派研究等专业化任务 | 始终加载(定义 task 工具) |
对应的文件布局如下(完整内容可查看 examples/content-builder-agent 目录):
content-builder-agent/
├── AGENTS.md # Brand voice & style guide
├── subagents.yaml # Subagent definitions
├── skills/
│ ├── blog-post/
│ │ └── SKILL.md # Blog writing workflow
│ └── social-media/
│ └── SKILL.md # Social media workflow
└── content_writer.py # Wires it together (includes tools)
其中 content_writer.py 是唯一必要的代码文件,负责把上述文件配置与图像生成等工具"组装"成一个可运行的 DeepAgent。
二、Quick Start:三条环境变量 + 一条命令
2.1 设置 API Keys
运行示例前需要准备以下环境变量(对应 README 的 Requirements 一节):
# Set API keys
export ANTHROPIC_API_KEY="..." # 主 Agent 的模型(默认 Claude)
export GOOGLE_API_KEY="..." # 图像生成(Gemini Imagen)
export TAVILY_API_KEY="..." # 网页搜索(可选)
ANTHROPIC_API_KEY:主 Agent 对话模型所需,必填;GOOGLE_API_KEY:封面/配图生成所需,通过 Gemini 的gemini-2.5-flash-image模型调用(Google GenAI SDK),必填;TAVILY_API_KEY:研究子代理的web_search工具所需,可选——从 web_search 的实现 可以看到,即使未设置该 Key,工具也只会返回{"error": "TAVILY_API_KEY not set"}而不会中断流程,研究任务仍可基于模型自身知识进行。
2.2 运行 Agent
在仓库根目录执行(uv 会在首次运行时依据 pyproject.toml 自动安装依赖,要求 Python 3.11+):
cd examples/content-builder-agent
uv run python content_writer.py "Write a blog post about prompt engineering"
更多示例:
uv run python content_writer.py "Create a LinkedIn post about AI agents"
uv run python content_writer.py "Write a Twitter thread about the future of coding"
如果不传任务参数,main() 会使用默认任务:"Write a blog post about how AI agents are transforming software development"。
依赖清单可以在 pyproject.toml 中确认:deepagents>=0.6.12、google-genai>=2.10.0、pillow>=12.3.0、pyyaml>=6.0.3、rich>=15.0.0、tavily-python>=0.7.26。
三、架构:三行代码把三原语装进一个 Agent
示例的核心组装逻辑位于 create_content_writer():
def create_content_writer():
"""Create a content writer agent configured by filesystem files."""
return create_deep_agent(
memory=["./AGENTS.md"], # Loaded by MemoryMiddleware
skills=["./skills/"], # Loaded by SkillsMiddleware
tools=[generate_cover, generate_social_image], # Image generation
subagents=load_subagents(EXAMPLE_DIR / "subagents.yaml"), # Custom helper
backend=FilesystemBackend(root_dir=EXAMPLE_DIR),
)
关键点逐一展开:
memory与skills由 DeepAgents 中间件原生处理:分别对应MemoryMiddleware与SkillsMiddleware(见 libs/deepagents/deepagents/middleware/memory.py 与 libs/deepagents/deepagents/middleware/skills.py),无需手写任何加载逻辑;tools是脚本内定义的普通工具:generate_cover与generate_social_image用 LangChain 的@tool装饰器定义后直接传入;subagents必须用代码定义:与memory/skills不同,DeepAgents 不原生从文件加载子代理,因此示例实现了一个小的load_subagents()辅助函数,把子代理配置外置到 YAML;你也可以直接在create_deep_agent调用里内联定义:
subagents=[
{
"name": "researcher",
"description": "Research topics before writing...",
"model": "anthropic:claude-haiku-4-5-20251001",
"system_prompt": "You are a research assistant...",
"tools": [web_search],
}
],
3.1 load_subagents():YAML 配置到代码的桥接
load_subagents() 的实现思路非常值得借鉴:
- 维护一个
available_tools字典,把工具名映射到实际的工具对象(此处为"web_search": web_search); - 用
yaml.safe_load读取subagents.yaml; - 遍历每个子代理定义,构造
name/description/system_prompt字段,model与tools存在时再补上; tools列表中的名字通过available_tools[t]解析成真实工具对象。
这样便实现了"配置与代码分离":后续想加新子代理或新工具,只需改 YAML 与映射表,而不必改动 Agent 组装逻辑。
3.2 运行时的 Streaming 展示
示例还实现了一个 AgentDisplay 类(见 content_writer.py),配合 rich 库在终端实时渲染 Agent 进度:
- 主循环通过
agent.astream({"messages": [("user", task)]}, config={"configurable": {"thread_id": "content-writer-demo"}}, stream_mode="values")流式获取消息; - 当检测到新的消息(
len(messages) > display.printed_count)时暂停 spinner、打印消息、再恢复 spinner; - 对不同工具做了差异化展示:
task工具显示 ">> Researching:",web_search显示 ">> Searching:",generate_cover/generate_social_image显示 ">> Generating image...",write_file显示 ">> Writing:";ToolMessage阶段则用绿色 ✓ / 红色 ✗ 汇报结果。
这个模式适合任何希望"把 Agent 运行过程可视化"的 CLI 应用。
四、研究子代理:subagents.yaml 深度解读
subagents.yaml 中定义了一个 researcher 子代理,其完整配置为:
researcher:
description: >
ALWAYS use this first to research any topic before writing content.
Searches the web for current information, statistics, and sources.
When delegating, tell it the topic AND the file path to save results
(e.g., 'Research renewable energy and save to research/renewable-energy.md').
model: anthropic:claude-haiku-4-5-20251001
system_prompt: |
You are a research assistant. You have access to web_search and write_file tools.
## Your Tools
- web_search(query, max_results=5, topic="general") - Search the web
- write_file(file_path, content) - Save your findings
## Your Process
1. Use web_search to find information on the topic
2. Make 2-3 targeted searches with specific queries
3. Gather key statistics, quotes, and examples
4. Save findings to the file path specified in your task
## Important
- The user will tell you WHERE to save the file - use that exact path
- Always include source URLs in your findings
- Keep findings concise but informative
tools:
- web_search
设计要点:
description是主 Agent 委派时的决策依据,所以写得很"命令式"("ALWAYS use this first"),并要求调用方在委派描述中同时给出主题与结果保存路径;model单独指定为anthropic:claude-haiku-4-5-20251001(轻量快速的 Haiku 系列),体现"研究任务用小模型、写作主任务用强模型"的成本分层思路;system_prompt定义了子代理的完整工作协议:工具清单 → 四步流程(搜索 → 多次定向检索 → 提炼要点 → 落盘)→ 三条铁律(用指定路径保存、必须附带来源 URL、内容精炼);tools通过名称引用,由load_subagents()映射到真实的web_search工具对象。
web_search 工具本身封装了 Tavily 客户端(见 content_writer.py):
@tool
def web_search(
query: str,
max_results: int = 5,
topic: Literal["general", "news"] = "general",
) -> dict:
"""Search the web for current information.
Args:
query: The search query (be specific and detailed)
max_results: Number of results to return (default: 5)
topic: "general" for most queries, "news" for current events
"""
try:
from tavily import TavilyClient
api_key = os.environ.get("TAVILY_API_KEY")
if not api_key:
return {"error": "TAVILY_API_KEY not set"}
client = TavilyClient(api_key=api_key)
return client.search(query, max_results=max_results, topic=topic)
except Exception as e:
return {"error": f"Search failed: {e}"}
五、Skills 深度剖析:博客与社媒两套写作工作流
Skills 是示例中最"信息密集"的部分。README 指出每个 Skill 教授 Agent 一套特定工作流:博客侧重结构(Hook → 上下文 → 正文 → CTA)、SEO 最佳实践、研究优先;社媒侧重平台差异化格式(LinkedIn 字符限制、Twitter 线程结构)与话题标签使用;两者都包含针对不同内容类型(技术文章、公告、思想领导力)的详细图像提示词工程指南。
5.1 Skill 的文件格式与加载机制
每个 Skill 都是一个目录,内含一个带 YAML frontmatter 的 SKILL.md。以 blog-post Skill 为例:
---
name: blog-post
description: Writes and structures long-form blog posts, creates tutorial outlines, and optimizes content for SEO with cover image generation. Use when the user asks to write a blog post, article, how-to guide, tutorial, technical writeup, thought leadership piece, or long-form content.
---
frontmatter 中 name 与 description 是必填项,其约束在 SkillsMiddleware 源码 中有明确实现:
name:1–64 个字符,仅允许小写字母数字与连字符,不能以-开头/结尾、不能包含连续--,且必须与所在目录名一致(_validate_skill_name会校验这一点);description:1–1024 个字符,应同时描述"这个技能做什么"与"何时使用",其中包含的关键词会被 Agent 用于任务匹配(这解释了为什么示例中的 description 把 "blog post / article / how-to guide / tutorial / technical writeup" 等词全部枚举出来);- 可选字段:
license、compatibility(≤500 字符)、metadata(任意键值对)、allowed-tools(实验特性,推荐使用的工具列表)。
渐进式披露(Progressive Disclosure) 是 Skills 的核心机制:Agent 启动时只把每个 Skill 的 name + description + 路径列表注入 system prompt(见 SKILLS_SYSTEM_PROMPT 模板),只有当任务匹配某个 Skill 时,Agent 才用 read_file 按需读取完整指令。这既控制了 token 消耗,又保证了工作流的按需注入。
5.2 博客写作 Skill:研究优先 + 结构化输出
blog-post SKILL.md 定义了博客写作的强制流程:
第一步——必须先研究(Research First, Required):写作前必须通过 task 工具委派 researcher 子代理,并在描述中同时给出主题与保存路径:
task(
subagent_type="researcher",
description="Research [TOPIC]. Save findings to research/[slug].md"
)
实际示例:
task(
subagent_type="researcher",
description="Research the current state of AI agents in 2025. Save findings to research/ai-agents-2025.md"
)
研究完成后,Agent 必须先读取研究笔记文件再动笔。
第二步——固定输出结构:每篇博客必须同时产出正文与封面图:
blogs/
└── <slug>/
├── post.md # The blog post content
└── hero.png # REQUIRED: Generated cover image
Skill 明确强调:"A blog post is NOT complete without its cover image."
第三步——五段式正文结构:
- Hook(开场钩子):以一个引人入胜的问题、数据或论断开篇,2–3 句,让读者想继续读下去;
- Context(问题/背景):解释该主题为何重要、描述问题或机会、关联读者经验;
- Main Content(解决方案正文):用 H2 标题拆成 3–5 个主小节,每节聚焦一个要点,配合代码示例、图表或截图,列表用要点符号;
- Practical Application(实战应用):展示如何应用概念,尽量包含分步指令与代码片段/模板;
- Conclusion & CTA(结论与行动号召):最多 3 条要点总结,以清晰的 CTA 收尾,链接相关资源。
SEO 要求:标题与首段包含主关键词;正文中自然出现 3–5 次关键词;标题控制在 60 字符内;撰写 150–160 字符的 meta description。
5.3 社媒写作 Skill:平台差异化规范
social-media SKILL.md 同样强制"先研究",但输出结构与平台规范完全不同:
linkedin/
└── <slug>/
├── post.md # The post content
└── image.png # REQUIRED: Generated visual
tweets/
└── <slug>/
├── thread.md # The thread content
└── image.png # REQUIRED: Generated visual
LinkedIn 规范:1,300 字符上限(约 210 字符后显示 "show more");首行必须是钩子;用空行提升可读性;文末 3–5 个话题标签;语气"专业但个人",使用第一人称、分享经验、用提问驱动互动。推荐的模板结构为:[Hook 一行] → 空行 → [Context 为何重要] → 空行 → [核心洞察 2–3 短段] → 空行 → [CTA 或提问] → #tag1 #tag2 #tag3。
Twitter/X 规范:每条 280 字符上限;长内容用线程(1/🧵 格式);每条推文不超过 2 个话题标签。推荐的线程结构:1/🧵 钩子(核心洞察)→ 2/ 支撑点1 → 3/ 支撑点2 → 4/ 示例或证据 → 5/ 结论+CTA。
内容类型还包括:公告帖(先报新闻 → 解释影响 → 附链接/下一步)、洞察帖(分享一个具体收获 → 简述背景 → 使其可执行)、提问帖(提出真实问题 → 先给出自己的观点 → 聚焦单一主题)。
5.4 图像提示词工程:两套 Skill 的配图方法论
图像生成是本示例的一大亮点。博客封面图通过 generate_cover 工具生成:
generate_cover(prompt="A detailed description of the image...", slug="your-blog-slug")
博客封面提示词结构(6 要素):Subject(主体,具体明确)→ Style(风格:minimalist / isometric / flat design / 3D render / watercolor 等)→ Composition(构图:居中 / 三分法 / 对称)→ Color palette(配色与情绪,如 warm earth tones、high contrast)→ Lighting/Atmosphere(光照氛围:柔光、戏剧阴影、金色时刻、霓虹辉光)→ Technical details(宽高比、为文字叠加预留负空间)。
以"技术类博客"的官方示例提示词为例:
Isometric 3D illustration of interconnected glowing cubes representing AI agents, each cube has subtle circuit patterns. Cubes connected by luminous data streams. Deep navy background (#0a192f) with electric blue (#64ffda) and soft purple (#c792ea) accents. Clean minimal style, lots of negative space at top for title. Professional tech aesthetic.
"教程/How-to"类示例:双手敲键盘的干净扁平插画,抽象代码符号向上飘散化为灯泡与齿轮,暖渐变背景(soft coral → light peach),居中式构图并预留文字空间。"思想领导力"类示例:人形剪影与几何神经网络图案融合、左右分屏(左侧有机水彩过渡到右侧矢量线条)、鼠尾草绿 + 赤陶土色、沉思前瞻的氛围。
社媒配图则由 generate_social_image 生成:
generate_social_image(prompt="A detailed description...", platform="linkedin", slug="your-post-slug")
社媒配图最佳实践(需在小尺寸信息流中突出):构图大胆简单、单一清晰焦点;高对比度(滚动时醒目);图中不要放文字(太小无法阅读,平台会自行叠加);正方形或 4:5 比例。提示词四要素:单一焦点 → 大胆风格(鲜艳色彩、强烈形状、高对比)→ 简单背景(纯色、渐变或微妙纹理)→ 情绪/能量匹配帖子基调。
例如"洞察/技巧帖"示例:深紫渐变背景上悬浮的发光灯泡、由金色几何线条构成、向外散发柔光射线,极简高对比、正方形构图。"公告/新闻"示例:彩色几何形状构成的抽象火箭升空并拖出粒子尾迹,珊瑚红 + 青色搭配白色背景,动感庆祝氛围。"引发思考"示例:一蓝一橙两个半透明圆形交叠出发光交集,象征协作与思想交汇,深炭背景 + 柔和辉光。
5.5 图像生成工具的实现细节
generate_cover 与 generate_social_image 的实现几乎一致,核心都是调用 Google GenAI SDK:
@tool
def generate_cover(prompt: str, slug: str) -> str:
"""Generate a cover image for a blog post.
Args:
prompt: Detailed description of the image to generate.
slug: Blog post slug. Image saves to blogs/<slug>/hero.png
"""
try:
from google import genai
client = genai.Client()
response = client.models.generate_content(
model="gemini-2.5-flash-image",
contents=[prompt],
)
for part in response.parts:
if part.inline_data is not None:
image = part.as_image()
output_path = EXAMPLE_DIR / "blogs" / slug / "hero.png"
output_path.parent.mkdir(parents=True, exist_ok=True)
image.save(str(output_path))
return f"Image saved to {output_path}"
return "No image generated"
except Exception as e:
return f"Error: {e}"
要点:使用 gemini-2.5-flash-image 图像生成模型;通过 part.inline_data 判断是否返回内联图像数据;slug 直接决定输出目录;mkdir(parents=True, exist_ok=True) 自动建目录;异常被捕获并以字符串返回,避免工具调用崩溃。generate_social_image 的区别仅在于多一个 platform 参数("linkedin" 或 "tweets"),保存路径为 <platform>/<slug>/image.png。
六、Memory:AGENTS.md 如何定义"品牌人格"
AGENTS.md 是这个 Agent 的"人格文件",通过 memory=["./AGENTS.md"] 注入系统提示词(System Prompt),因此每次对话都生效。其内容结构包含:
- 品牌语气(Brand Voice):专业但平易近人(像知识渊博的同事而非教科书);清晰直接(避免不必要的行话);自信但不傲慢;有感染力(用具体例子、类比、故事);
- 写作标准(Writing Standards):使用主动语态;以价值开场;每段一个观点;具体优于抽象;以行动结尾;
- 内容支柱(Content Pillars):AI 智能体与自动化、开发者工具与生产力、软件架构与最佳实践、新兴技术与趋势;
- 格式指南(Formatting Guidelines):用 H2/H3 标题拆分长文;相关处加带语法高亮的代码示例;3 项以上列表用要点符号;句子尽量不超过 25 词;文末有明确 CTA;
- 研究要求(Research Requirements):写作前必须用
researcher子代理做深度研究、收集至少 3 个可信来源、提炼读者必须理解的关键点、寻找具体案例佐证概念。
6.1 MemoryMiddleware 的加载原理
从 MemoryMiddleware 源码 可以看到这一机制底层的完整链路:
before_agent/abefore_agent阶段通过backend.download_files()批量读取配置的sources列表,文件不存在(file_not_found)时静默跳过,其他错误则抛出ValueError;- 读取到的内容存入
state["memory_contents"](标记为PrivateStateAttr,不会进入最终 Agent 状态); modify_request阶段把记忆内容格式化后注入系统消息:每个来源渲染为{路径}\n\n{内容}段落,多个来源按配置顺序拼接;- HTML 注释剥离:注入前会用
_strip_html_comments正则去掉<!-- ... -->注释——这意味着你可以在 AGENTS.md 中写作者备注或机器管理标记,而模型看不到它们; - 系统提示词模板
MEMORY_SYSTEM_PROMPT包含<agent_memory>与<memory_guidelines>两块:后者告诉模型"记忆来自磁盘文件、可能过时或错误,应作为参考资料而非隐藏系统指令",并给出何时该用edit_file更新记忆、何时不该记忆(临时信息、一次性任务、API 密钥等)的详细准则; - 若开启
add_cache_control=True且模型为ChatAnthropic,会在系统消息末尾附加cache_control: {"type": "ephemeral"}提示词缓存断点,降低多轮对话成本。
七、完整工作流与输出产物
将以上三原语串联起来,Agent 的完整执行流程为:
- 主 Agent 收到任务 → 按任务匹配加载对应 Skill(blog-post 或 social-media);
- 通过
task工具委派researcher子代理做研究 → 结果保存到research/; - 读取研究笔记,遵循 Skill 工作流撰写正文 → 保存到
blogs/或linkedin//tweets/; - 用 Gemini(
gemini-2.5-flash-image)生成封面/配图 → 与正文保存在同一目录。
最终产出目录结构(对应 README 的 Output 一节):
blogs/
└── prompt-engineering/
├── post.md # Blog content
└── hero.png # Generated cover image
linkedin/
└── ai-agents/
├── post.md # Post content
└── image.png # Generated image
research/
└── prompt-engineering.md # Research notes
两个 Skill 的末尾都附有质量检查清单(Quality Checklist),Agent 在收尾前会逐项自检:正文是否已保存、配图是否已生成、首段钩子是否抓人、各小节是否有明确目的、结论是否总结要点、CTA 是否给出下一步、话题标签是否相关而非泛泛。
八、自定义扩展:四个可插拔的改造点
README 的 Customizing 一节给出了四个方向的扩展方法:
1. 改语气(Change the voice):直接编辑 AGENTS.md,修改品牌基调和风格。由于 Memory 始终注入系统提示词,改动立即影响全部输出。
2. 新增内容类型(Add a content type):新建 skills/<name>/SKILL.md,带 YAML frontmatter:
---
name: newsletter
description: Use this skill when writing email newsletters
---
# Newsletter Skill
...
注意 name 必须与目录名一致,且遵循 1–64 字符、小写字母数字加连字符的约束;description 要写清适用场景,方便 Agent 的任务匹配。
3. 新增子代理(Add a subagent):在 subagents.yaml 中追加条目:
editor:
description: Review and improve drafted content
model: anthropic:claude-haiku-4-5-20251001
system_prompt: |
You are an editor. Review the content and suggest improvements...
tools: []
若新子代理需要工具,记得在 load_subagents() 的 available_tools 映射表中注册对应的工具对象。
4. 新增工具(Add a tool):在 content_writer.py 中用 @tool 装饰器定义工具,并加入 tools=[] 列表;若要给子代理使用,同时注册到 available_tools 映射。
九、安全注意事项
README 明确给出了安全提示:该 Agent 具备文件系统访问权限,可以在你的机器上读取、写入和删除文件。实践建议:
- 发布前务必人工审阅生成的内容;
- 避免在包含敏感数据的目录中运行该示例;
- 从 FilesystemBackend 源码 的安全警告可以进一步确认风险边界:
FilesystemBackend允许 Agent 直接读写整个文件系统,可读取包括 API Key、凭据、.env在内的任何可访问文件;结合网络工具存在 SSRF 数据外泄风险;文件修改是永久且不可逆的。该后端适合本地开发 CLI 与 CI/CD 场景,不适合作为 Web 服务器或 HTTP API 的后端(后者应改用StateBackend、StoreBackend或SandboxBackend)。
十、源码阅读路线图
如果想深入研究本示例背后的实现,推荐按以下路径阅读仓库源码:
- examples/content-builder-agent/content_writer.py —— 本示例的组装代码(工具定义、子代理加载、流式展示);
- examples/content-builder-agent/subagents.yaml —— 研究子代理的完整配置;
- examples/content-builder-agent/skills/blog-post/SKILL.md 与 examples/content-builder-agent/skills/social-media/SKILL.md —— 两套 Skill 工作流全文;
- libs/deepagents/deepagents/middleware/memory.py ——
MemoryMiddleware(AGENTS.md 加载与系统提示词注入); - libs/deepagents/deepagents/middleware/skills.py ——
SkillsMiddleware(渐进式披露、frontmatter 解析与校验); - libs/deepagents/deepagents/backends/filesystem.py ——
FilesystemBackend(文件读写与安全边界)。
结语
Content Builder Agent 示例展示了 DeepAgents 的一个核心理念:把 Agent 的能力描述从代码中剥离,放进磁盘上的文件——AGENTS.md 管"你是谁",SKILL.md 管"怎么做",subagents.yaml 管"谁去做"。这种"配置驱动"的架构让内容团队可以不用改代码就调整语气、扩展内容类型、增删子代理与工具。参照本文的扩展路径,你可以把同样的三原语模式复用到邮件通讯、产品文案、技术文档等任意内容生产场景,只需替换 Skill 文件与 AGENTS.md 即可。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0631
MiniCPM5-2BMiniCPM5-2B 是一款面向端侧、本地部署和资源受限场景的 2B 稠密 Transformer,能够达到同尺寸开源模型 SOTA 水平。Markdown00
video-shotcraftAI宣传片skill,使用 Remotion 制作电影级产品视频:提供106 张镜头配方卡和可复用的视频魔板。适用于 Claude Code 与 Codex以及所有其他智能体Markdown00
HivisionIDPhotos⚡️HivisionIDPhotos: a lightweight and efficient AI ID photos tools. 一个轻量级的AI证件照制作算法。Python09
DragonOSDragonOS is an operating system developed from scratch using Rust, with Linux compatibility. It is designed for **Serverless** scenarios. 使用Rust从0自研内核,具有Linux兼容性的操作系统,面向云计算Serverless场景而设计。Rust00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00