﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-paulwong-随笔分类-AI-AGENT</title><link>http://www.blogjava.net/paulwong/category/55409.html</link><description /><language>zh-cn</language><lastBuildDate>Thu, 16 Apr 2026 13:33:16 GMT</lastBuildDate><pubDate>Thu, 16 Apr 2026 13:33:16 GMT</pubDate><ttl>60</ttl><item><title>AGENTS.md 和 SOUL.md 有啥区别</title><link>http://www.blogjava.net/paulwong/archive/2026/04/16/451776.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Thu, 16 Apr 2026 08:26:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2026/04/16/451776.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/451776.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2026/04/16/451776.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/451776.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/451776.html</trackback:ping><description><![CDATA[<div style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif; line-height: 1.8; color: #333; background: #f5f5f5; padding: 20px; margin: 0;"> <div style="max-width: 900px; margin: 0 auto; background: #fff; border-radius: 8px; box-shadow: 0 2px 8px rgba(0,0,0,0.1); padding: 40px;"> <h1 style="font-size: 28px; color: #1a1a1a; margin-bottom: 30px; padding-bottom: 15px; border-bottom: 3px solid #2196F3;">AGENTS.md vs SOUL.md 区别</h1> <table style="width: 100%; border-collapse: collapse; margin: 20px 0; background: #fff;"> <tbody><tr> <th style="width: 20%; padding: 12px 15px; text-align: left; border: 1px solid #e0e0e0; background: #2196F3; color: #fff; font-weight: 600;">特性</th> <th style="width: 40%; padding: 12px 15px; text-align: left; border: 1px solid #e0e0e0; background: #2196F3; color: #fff; font-weight: 600;">AGENTS.md</th> <th style="width: 40%; padding: 12px 15px; text-align: left; border: 1px solid #e0e0e0; background: #2196F3; color: #fff; font-weight: 600;">SOUL.md</th> </tr> <tr style="background: #f8f9fa;"> <td style="padding: 12px 15px; text-align: left; border: 1px solid #e0e0e0;"><strong style="color: #2196F3;">作用</strong></td> <td style="padding: 12px 15px; text-align: left; border: 1px solid #e0e0e0;">工作空间规则和操作指南</td> <td style="padding: 12px 15px; text-align: left; border: 1px solid #e0e0e0;">Agent 的身份、性格和核心行为准则</td> </tr> <tr> <td style="padding: 12px 15px; text-align: left; border: 1px solid #e0e0e0;"><strong style="color: #2196F3;">内容</strong></td> <td style="padding: 12px 15px; text-align: left; border: 1px solid #e0e0e0;">任务流程、通信协议、安全规范、工具使用说明</td> <td style="padding: 12px 15px; text-align: left; border: 1px solid #e0e0e0;">角色定义、价值观、行为风格、自我认知</td> </tr> <tr style="background: #f8f9fa;"> <td style="padding: 12px 15px; text-align: left; border: 1px solid #e0e0e0;"><strong style="color: #2196F3;">谁制定</strong></td> <td style="padding: 12px 15px; text-align: left; border: 1px solid #e0e0e0;">系统/Manager 生成 + 用户自定义规则</td> <td style="padding: 12px 15px; text-align: left; border: 1px solid #e0e0e0;">用户为每个 Agent 量身定制</td> </tr> <tr> <td style="padding: 12px 15px; text-align: left; border: 1px solid #e0e0e0;"><strong style="color: #2196F3;">层级</strong></td> <td style="padding: 12px 15px; text-align: left; border: 1px solid #e0e0e0;">组织/工作空间级别</td> <td style="padding: 12px 15px; text-align: left; border: 1px solid #e0e0e0;">个人/Agent 级别</td> </tr> <tr style="background: #f8f9fa;"> <td style="padding: 12px 15px; text-align: left; border: 1px solid #e0e0e0;"><strong style="color: #2196F3;">修改权限</strong></td> <td style="padding: 12px 15px; text-align: left; border: 1px solid #e0e0e0;">可追加自定义规则</td> <td style="padding: 12px 15px; text-align: left; border: 1px solid #e0e0e0;">完全可定制</td> </tr> <tr> <td style="padding: 12px 15px; text-align: left; border: 1px solid #e0e0e0;"><strong style="color: #2196F3;">目的</strong></td> <td style="padding: 12px 15px; text-align: left; border: 1px solid #e0e0e0;">告诉 Agent <strong style="color: #2196F3;">如何工作</strong></td> <td style="padding: 12px 15px; text-align: left; border: 1px solid #e0e0e0;">告诉 Agent <strong style="color: #2196F3;">它是谁</strong></td> </tr> </tbody></table> <h2 style="font-size: 22px; color: #333; margin: 30px 0 15px;">具体对比</h2> <h3 style="font-size: 18px; color: #555; margin: 25px 0 12px;">AGENTS.md - "工作手册"</h3> <div style="background: #fff3e0; border-left: 4px solid #FF9800; padding: 20px; margin: 20px 0; border-radius: 4px;">
<pre style="background: #263238; color: #aed581; padding: 15px; border-radius: 6px; overflow-x: auto; margin: 15px 0;"><code style="background: transparent; color: inherit; padding: 0; font-family: 'SF Mono', Monaco, 'Courier New', monospace; font-size: 14px;">## Task Execution
1. Sync files first: `hiclaw-sync` 2. Read the task spec
3. Create `plan.md` before starting
... ## Communication
- @mention Manager when task completed
- NO_REPLY usage rules
- History context handling</code></pre> </div> <p style="margin: 15px 0;"><strong style="color: #2196F3;">解决什么问题：</strong></p> <ul style="margin: 15px 0; padding-left: 25px;"> <li style="margin: 8px 0;">怎么接收任务？</li> <li style="margin: 8px 0;">怎么和 Manager/其他 Worker 沟通？</li> <li style="margin: 8px 0;">文件放哪里？</li> <li style="margin: 8px 0;">什么时候 @mention？</li> <li style="margin: 8px 0;">安全规范是什么？</li> </ul> <h3 style="font-size: 18px; color: #555; margin: 25px 0 12px;">SOUL.md - "灵魂/人格定义"</h3> <div style="background: #e8f5e9; border-left: 4px solid #4CAF50; padding: 20px; margin: 20px 0; border-radius: 4px;">
<pre style="background: #263238; color: #aed581; padding: 15px; border-radius: 6px; overflow-x: auto; margin: 15px 0;"><code style="background: transparent; color: inherit; padding: 0; font-family: 'SF Mono', Monaco, 'Courier New', monospace; font-size: 14px;"># Worker: cs-assistant ## Identity
You are cs-assistant, a technical support specialist... ## Personality
- Professional yet approachable
- Patient with technical questions
... ## Domain
- Wiki.js management
- Technical documentation
... ## Response Style
- Provide clear, structured answers
- Include command examples when relevant</code></pre> </div> <p style="margin: 15px 0;"><strong style="color: #2196F3;">解决什么问题：</strong></p> <ul style="margin: 15px 0; padding-left: 25px;"> <li style="margin: 8px 0;">我是谁？</li> <li style="margin: 8px 0;">我的专业领域是什么？</li> <li style="margin: 8px 0;">我该怎么说话？（语气、风格）</li> <li style="margin: 8px 0;">我的价值观是什么？</li> <li style="margin: 8px 0;">面对不同情况该怎么反应？</li> </ul> <h2 style="font-size: 22px; color: #333; margin: 30px 0 15px;">实际例子</h2> <div style="background: #e3f2fd; border-left: 4px solid #2196F3; padding: 20px; margin: 20px 0; border-radius: 4px;"> <p style="margin: 0 0 15px 0;"><strong>用户问："怎么备份 Wiki.js？"</strong></p> <br /> <p style="margin: 0 0 10px 0;"><strong>AGENTS.md 告诉 cs-assistant：</strong></p> <p style="margin: 0 0 15px 0;">&#8594; 先检查知识库有没有相关内容，然后基于知识库回答，最后引用来源文件</p> <br /> <p style="margin: 0 0 10px 0;"><strong>SOUL.md 告诉 cs-assistant：</strong></p> <p style="margin: 0 0 15px 0;">&#8594; 你是技术专家，应该用专业但友好的语气回答，给出具体命令示例</p> <br /> <p style="margin: 0 0 10px 0;"><strong>实际回答：</strong></p>
<pre style="background: #263238; color: #aed581; padding: 15px; border-radius: 6px; overflow-x: auto; margin: 15px 0;"><code style="background: transparent; color: inherit; padding: 0; font-family: 'SF Mono', Monaco, 'Courier New', monospace; font-size: 14px;">Based on [wiki-guide.md]:
Wiki.js 支持以下备份方式... 具体操作命令：
wikijs backup --output ~/wiki-backup.zip Additional context:
建议定期备份，可以设置定时任务...</code></pre> </div> <div style="background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: #fff; padding: 25px; border-radius: 8px; margin-top: 30px;"> <h2 style="font-size: 22px; color: #fff; margin: 0 0 15px 0;">一句话总结</h2> <p style="margin: 0 0 10px 0;"><strong>AGENTS.md</strong> = "工作规范说明书"（流程、规则、工具）</p> <p style="margin: 0 0 15px 0;"><strong>SOUL.md</strong> = "人格定义书"（身份、性格、专业领域）</p> <p style="margin: 0;">两者配合：AGENTS.md 确保 Agent <strong>正确做事</strong>，SOUL.md 确保 Agent <strong>像自己</strong>。</p> </div> </div>
</div><img src ="http://www.blogjava.net/paulwong/aggbug/451776.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2026-04-16 16:26 <a href="http://www.blogjava.net/paulwong/archive/2026/04/16/451776.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>agent使用FireCrawl简介</title><link>http://www.blogjava.net/paulwong/archive/2026/04/15/451774.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Wed, 15 Apr 2026 03:03:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2026/04/15/451774.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/451774.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2026/04/15/451774.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/451774.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/451774.html</trackback:ping><description><![CDATA[FireCrawl本地安装<br />docker-compose.yaml<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->name:&nbsp;firecrawl<br /><br />x-common-service:&nbsp;<span style="color: #FF0000; ">&amp;common-service</span><br />&nbsp;&nbsp;#&nbsp;NOTE:&nbsp;If&nbsp;you&nbsp;don't&nbsp;want&nbsp;to&nbsp;build&nbsp;the&nbsp;service&nbsp;locally,<br />&nbsp;&nbsp;#&nbsp;comment&nbsp;out&nbsp;the&nbsp;build:&nbsp;statement&nbsp;and&nbsp;uncomment&nbsp;the&nbsp;image:&nbsp;statement<br />&nbsp;&nbsp;image:&nbsp;ghcr.io/firecrawl/firecrawl:latest<br />&nbsp;&nbsp;#&nbsp;build:&nbsp;apps/api<br /><br />&nbsp;&nbsp;ulimits:<br />&nbsp;&nbsp;&nbsp;&nbsp;nofile:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;soft:&nbsp;65535<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hard:&nbsp;65535<br />&nbsp;&nbsp;networks:<br />&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;backend<br />&nbsp;&nbsp;extra_hosts:<br />&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;"host.docker.internal:host-gateway"<br />&nbsp;&nbsp;logging:<br />&nbsp;&nbsp;&nbsp;&nbsp;driver:&nbsp;"json-file"<br />&nbsp;&nbsp;&nbsp;&nbsp;options:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;max-size:&nbsp;"10m"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;max-file:&nbsp;"3"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;compress:&nbsp;"true"<br /><br />x-common-env:&nbsp;<span style="color: #FF0000; ">&amp;common-env</span><br />&nbsp;&nbsp;REDIS_URL:&nbsp;${REDIS_URL:-redis://redis:6379}<br />&nbsp;&nbsp;REDIS_RATE_LIMIT_URL:&nbsp;${REDIS_URL:-redis://redis:6379}<br />&nbsp;&nbsp;PLAYWRIGHT_MICROSERVICE_URL:&nbsp;${PLAYWRIGHT_MICROSERVICE_URL:-http://playwright-service:3000/scrape}<br />&nbsp;&nbsp;POSTGRES_USER:&nbsp;${POSTGRES_USER:-postgres}<br />&nbsp;&nbsp;POSTGRES_PASSWORD:&nbsp;${POSTGRES_PASSWORD:-postgres}<br />&nbsp;&nbsp;POSTGRES_DB:&nbsp;${POSTGRES_DB:-postgres}<br />&nbsp;&nbsp;POSTGRES_HOST:&nbsp;${POSTGRES_HOST:-nuq-postgres}<br />&nbsp;&nbsp;POSTGRES_PORT:&nbsp;${POSTGRES_PORT:-5432}<br />&nbsp;&nbsp;USE_DB_AUTHENTICATION:&nbsp;${USE_DB_AUTHENTICATION:-false}<br />&nbsp;&nbsp;NUM_WORKERS_PER_QUEUE:&nbsp;${NUM_WORKERS_PER_QUEUE:-8}<br />&nbsp;&nbsp;CRAWL_CONCURRENT_REQUESTS:&nbsp;${CRAWL_CONCURRENT_REQUESTS:-10}<br />&nbsp;&nbsp;MAX_CONCURRENT_JOBS:&nbsp;${MAX_CONCURRENT_JOBS:-5}<br />&nbsp;&nbsp;BROWSER_POOL_SIZE:&nbsp;${BROWSER_POOL_SIZE:-5}<br />&nbsp;&nbsp;OPENAI_API_KEY:&nbsp;${OPENAI_API_KEY}<br />&nbsp;&nbsp;OPENAI_BASE_URL:&nbsp;${OPENAI_BASE_URL}<br />&nbsp;&nbsp;MODEL_NAME:&nbsp;${MODEL_NAME}<br />&nbsp;&nbsp;MODEL_EMBEDDING_NAME:&nbsp;${MODEL_EMBEDDING_NAME}<br />&nbsp;&nbsp;OLLAMA_BASE_URL:&nbsp;${OLLAMA_BASE_URL}<br />&nbsp;&nbsp;AUTUMN_SECRET_KEY:&nbsp;${AUTUMN_SECRET_KEY}<br />&nbsp;&nbsp;SLACK_WEBHOOK_URL:&nbsp;${SLACK_WEBHOOK_URL}<br />&nbsp;&nbsp;BULL_AUTH_KEY:&nbsp;${BULL_AUTH_KEY}<br />&nbsp;&nbsp;TEST_API_KEY:&nbsp;${TEST_API_KEY}<br />&nbsp;&nbsp;SUPABASE_ANON_TOKEN:&nbsp;${SUPABASE_ANON_TOKEN}<br />&nbsp;&nbsp;SUPABASE_URL:&nbsp;${SUPABASE_URL}<br />&nbsp;&nbsp;SUPABASE_SERVICE_TOKEN:&nbsp;${SUPABASE_SERVICE_TOKEN}<br />&nbsp;&nbsp;SELF_HOSTED_WEBHOOK_URL:&nbsp;${SELF_HOSTED_WEBHOOK_URL}<br />&nbsp;&nbsp;LOGGING_LEVEL:&nbsp;${LOGGING_LEVEL}<br />&nbsp;&nbsp;PROXY_SERVER:&nbsp;${PROXY_SERVER}<br />&nbsp;&nbsp;PROXY_USERNAME:&nbsp;${PROXY_USERNAME}<br />&nbsp;&nbsp;PROXY_PASSWORD:&nbsp;${PROXY_PASSWORD}<br />&nbsp;&nbsp;SEARXNG_ENDPOINT:&nbsp;${SEARXNG_ENDPOINT}<br />&nbsp;&nbsp;SEARXNG_ENGINES:&nbsp;${SEARXNG_ENGINES}<br />&nbsp;&nbsp;SEARXNG_CATEGORIES:&nbsp;${SEARXNG_CATEGORIES}<br />&nbsp;&nbsp;MAX_CPU:&nbsp;${MAX_CPU:-0.8}<br />&nbsp;&nbsp;MAX_RAM:&nbsp;${MAX_RAM:-0.8}<br />&nbsp;&nbsp;ALLOW_LOCAL_WEBHOOKS:&nbsp;${ALLOW_LOCAL_WEBHOOKS:-false}<br /><br />services:<br />&nbsp;&nbsp;playwright-service:<br />&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;NOTE:&nbsp;If&nbsp;you&nbsp;don't&nbsp;want&nbsp;to&nbsp;build&nbsp;the&nbsp;service&nbsp;locally,<br />&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;comment&nbsp;out&nbsp;the&nbsp;build:&nbsp;statement&nbsp;and&nbsp;uncomment&nbsp;the&nbsp;image:&nbsp;statement<br />&nbsp;&nbsp;&nbsp;&nbsp;image:&nbsp;ghcr.io/firecrawl/playwright-service:latest<br />&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;build:&nbsp;apps/playwright-service-ts<br />&nbsp;&nbsp;&nbsp;&nbsp;environment:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PORT:&nbsp;3000<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROXY_SERVER:&nbsp;${PROXY_SERVER}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROXY_USERNAME:&nbsp;${PROXY_USERNAME}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PROXY_PASSWORD:&nbsp;${PROXY_PASSWORD}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ALLOW_LOCAL_WEBHOOKS:&nbsp;${ALLOW_LOCAL_WEBHOOKS:-false}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BLOCK_MEDIA:&nbsp;${BLOCK_MEDIA:-false}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;Configure&nbsp;maximum&nbsp;concurrent&nbsp;pages&nbsp;for&nbsp;Playwright&nbsp;browser&nbsp;instances<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MAX_CONCURRENT_PAGES:&nbsp;${CRAWL_CONCURRENT_REQUESTS:-10}<br />&nbsp;&nbsp;&nbsp;&nbsp;networks:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;backend<br />&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;Resource&nbsp;limits&nbsp;for&nbsp;Docker&nbsp;Compose&nbsp;(not&nbsp;Swarm)<br />&nbsp;&nbsp;&nbsp;&nbsp;cpus:&nbsp;2.0<br />&nbsp;&nbsp;&nbsp;&nbsp;mem_limit:&nbsp;4G<br />&nbsp;&nbsp;&nbsp;&nbsp;memswap_limit:&nbsp;4G<br />&nbsp;&nbsp;&nbsp;&nbsp;logging:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;driver:&nbsp;"json-file"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;options:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;max-size:&nbsp;"10m"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;max-file:&nbsp;"3"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;compress:&nbsp;"true"<br />&nbsp;&nbsp;&nbsp;&nbsp;tmpfs:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;/tmp/.cache:noexec,nosuid,size=1g<br /><br />&nbsp;&nbsp;api:<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">&lt;:&nbsp;</span><span style="color: #FF0000; ">*common-service<br />&nbsp;&nbsp;&nbsp;&nbsp;environment:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;&lt;:&nbsp;*common-env<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;HOST:&nbsp;"0.0.0.0"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;PORT:&nbsp;${INTERNAL_PORT:-3002}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;EXTRACT_WORKER_PORT:&nbsp;${EXTRACT_WORKER_PORT:-3004}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WORKER_PORT:&nbsp;${WORKER_PORT:-3005}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;NUQ_RABBITMQ_URL:&nbsp;amqp://rabbitmq:5672<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ENV:&nbsp;local<br />&nbsp;&nbsp;&nbsp;&nbsp;depends_on:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;redis:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;condition:&nbsp;service_started<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;playwright-service:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;condition:&nbsp;service_started<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rabbitmq:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;condition:&nbsp;service_healthy<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;nuq-postgres:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;condition:&nbsp;service_started<br />&nbsp;&nbsp;&nbsp;&nbsp;ports:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;"${PORT:-3002}:${INTERNAL_PORT:-3002}"<br />&nbsp;&nbsp;&nbsp;&nbsp;command:&nbsp;node&nbsp;dist/src/harness.js&nbsp;--start-docker<br />&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;Resource&nbsp;limits&nbsp;for&nbsp;Docker&nbsp;Compose&nbsp;(not&nbsp;Swarm)<br />&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;Increase&nbsp;if&nbsp;you&nbsp;have&nbsp;more&nbsp;CPU&nbsp;cores/RAM&nbsp;available<br />&nbsp;&nbsp;&nbsp;&nbsp;cpus:&nbsp;4.0<br />&nbsp;&nbsp;&nbsp;&nbsp;mem_limit:&nbsp;8G<br />&nbsp;&nbsp;&nbsp;&nbsp;memswap_limit:&nbsp;8G<br /><br />&nbsp;&nbsp;redis:<br />&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;NOTE:&nbsp;If&nbsp;you&nbsp;want&nbsp;to&nbsp;use&nbsp;Valkey&nbsp;(open&nbsp;source)&nbsp;instead&nbsp;of&nbsp;Redis&nbsp;(source&nbsp;available),<br />&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;uncomment&nbsp;the&nbsp;Valkey&nbsp;statement&nbsp;and&nbsp;comment&nbsp;out&nbsp;the&nbsp;Redis&nbsp;statement.<br />&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;Using&nbsp;Valkey&nbsp;with&nbsp;Firecrawl&nbsp;is&nbsp;untested&nbsp;and&nbsp;not&nbsp;guaranteed&nbsp;to&nbsp;work.&nbsp;Use&nbsp;with&nbsp;caution.<br />&nbsp;&nbsp;&nbsp;&nbsp;image:&nbsp;redis:alpine<br />&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;image:&nbsp;valkey/valkey:alpine<br /><br />&nbsp;&nbsp;&nbsp;&nbsp;networks:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;backend<br />&nbsp;&nbsp;&nbsp;&nbsp;command:&nbsp;redis-server&nbsp;--bind&nbsp;0.0.0.0<br />&nbsp;&nbsp;&nbsp;&nbsp;volumes:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;redis-data:/data<br />&nbsp;&nbsp;&nbsp;&nbsp;logging:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;driver:&nbsp;"json-file"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;options:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;max-size:&nbsp;"5m"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;max-file:&nbsp;"2"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;compress:&nbsp;"true"<br /><br />&nbsp;&nbsp;rabbitmq:<br />&nbsp;&nbsp;&nbsp;&nbsp;image:&nbsp;rabbitmq:3-management<br />&nbsp;&nbsp;&nbsp;&nbsp;networks:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;backend<br />&nbsp;&nbsp;&nbsp;&nbsp;command:&nbsp;rabbitmq-server<br />&nbsp;&nbsp;&nbsp;&nbsp;healthcheck:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;test:&nbsp;["CMD",&nbsp;"rabbitmq-diagnostics",&nbsp;"-q",&nbsp;"check_running"]<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;interval:&nbsp;10s<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;timeout:&nbsp;10s<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;retries:&nbsp;10<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;start_period:&nbsp;30s<br />&nbsp;&nbsp;&nbsp;&nbsp;volumes:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;rabbitmq-data:/var/lib/rabbitmq<br />&nbsp;&nbsp;&nbsp;&nbsp;logging:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;driver:&nbsp;"json-file"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;options:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;max-size:&nbsp;"5m"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;max-file:&nbsp;"2"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;compress:&nbsp;"true"<br /><br />&nbsp;&nbsp;nuq-postgres:<br />&nbsp;&nbsp;&nbsp;&nbsp;image:&nbsp;ghcr.io/firecrawl/nuq-postgres:latest<br />&nbsp;&nbsp;&nbsp;&nbsp;environment:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;POSTGRES_USER:&nbsp;${POSTGRES_USER:-postgres}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;POSTGRES_PASSWORD:&nbsp;${POSTGRES_PASSWORD:-postgres}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;POSTGRES_DB:&nbsp;${POSTGRES_DB:-postgres}<br />&nbsp;&nbsp;&nbsp;&nbsp;networks:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;backend<br />&nbsp;&nbsp;&nbsp;&nbsp;volumes:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;postgres-data:/var/lib/postgresql/data<br />&nbsp;&nbsp;&nbsp;&nbsp;logging:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;driver:&nbsp;"json-file"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;options:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;max-size:&nbsp;"10m"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;max-file:&nbsp;"3"<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;compress:&nbsp;"true"<br /><br />networks:<br />&nbsp;&nbsp;backend:<br />&nbsp;&nbsp;&nbsp;&nbsp;driver:&nbsp;bridge<br /><br />volumes:<br />&nbsp;&nbsp;redis-data:<br />&nbsp;&nbsp;&nbsp;&nbsp;driver:&nbsp;local<br />&nbsp;&nbsp;rabbitmq-data:<br />&nbsp;&nbsp;&nbsp;&nbsp;driver:&nbsp;local<br />&nbsp;&nbsp;postgres-data:<br />&nbsp;&nbsp;&nbsp;&nbsp;driver:&nbsp;local<br /></span></div><br />.env<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->#&nbsp;=====&nbsp;Required&nbsp;ENVS&nbsp;======<br />PORT=8019<br />HOST=0.0.0.0<br /><br />#&nbsp;Note:&nbsp;PORT&nbsp;is&nbsp;used&nbsp;by&nbsp;both&nbsp;the&nbsp;main&nbsp;API&nbsp;server&nbsp;and&nbsp;worker&nbsp;liveness&nbsp;check&nbsp;endpoint<br /><br />#&nbsp;To&nbsp;turn&nbsp;on&nbsp;DB&nbsp;authentication,&nbsp;you&nbsp;need&nbsp;to&nbsp;set&nbsp;up&nbsp;Supabase.<br />USE_DB_AUTHENTICATION=false<br /><br />#&nbsp;=====&nbsp;Optional&nbsp;ENVS&nbsp;======<br /><br />##&nbsp;===&nbsp;AI&nbsp;features&nbsp;(JSON&nbsp;format&nbsp;on&nbsp;scrape,&nbsp;/extract&nbsp;API)&nbsp;===<br />#&nbsp;Provide&nbsp;your&nbsp;OpenAI&nbsp;API&nbsp;key&nbsp;here&nbsp;to&nbsp;enable&nbsp;AI&nbsp;features<br />#&nbsp;OPENAI_API_KEY=your_openai_api_key_here<br /><br />#&nbsp;Experimental:&nbsp;Use&nbsp;Ollama<br />#&nbsp;OLLAMA_BASE_URL=http://localhost:11434/api<br />#&nbsp;MODEL_NAME=deepseek-r1:7b<br />#&nbsp;MODEL_EMBEDDING_NAME=nomic-embed-text<br /><br />#&nbsp;Experimental:&nbsp;Use&nbsp;any&nbsp;OpenAI-compatible&nbsp;API<br />#&nbsp;OPENAI_BASE_URL=https://example.com/v1<br />#&nbsp;OPENAI_API_KEY=your_api_key_here<br /><br />##&nbsp;===&nbsp;Proxy&nbsp;===<br />#&nbsp;PROXY_SERVER&nbsp;can&nbsp;be&nbsp;a&nbsp;full&nbsp;URL&nbsp;(e.g.&nbsp;http://0.1.2.3:1234)&nbsp;or&nbsp;just&nbsp;an&nbsp;IP&nbsp;and&nbsp;port&nbsp;combo&nbsp;(e.g.&nbsp;0.1.2.3:1234)<br />#&nbsp;Do&nbsp;not&nbsp;uncomment&nbsp;PROXY_USERNAME&nbsp;and&nbsp;PROXY_PASSWORD&nbsp;if&nbsp;your&nbsp;proxy&nbsp;is&nbsp;unauthenticated<br />#&nbsp;PROXY_SERVER=<br />#&nbsp;PROXY_USERNAME=<br />#&nbsp;PROXY_PASSWORD=<br /><br />##&nbsp;===&nbsp;/search&nbsp;API&nbsp;===<br />#&nbsp;By&nbsp;default,&nbsp;the&nbsp;/search&nbsp;API&nbsp;will&nbsp;use&nbsp;Google&nbsp;search.<br /><br />#&nbsp;You&nbsp;can&nbsp;specify&nbsp;a&nbsp;SearXNG&nbsp;server&nbsp;with&nbsp;the&nbsp;JSON&nbsp;format&nbsp;enabled,&nbsp;if&nbsp;you'd&nbsp;like&nbsp;to&nbsp;use&nbsp;that&nbsp;instead&nbsp;of&nbsp;direct&nbsp;Google.<br />#&nbsp;You&nbsp;can&nbsp;also&nbsp;customize&nbsp;the&nbsp;engines&nbsp;and&nbsp;categories&nbsp;parameters,&nbsp;but&nbsp;the&nbsp;defaults&nbsp;should&nbsp;also&nbsp;work&nbsp;just&nbsp;fine.<br />#&nbsp;SEARXNG_ENDPOINT=http://your.searxng.server<br />#&nbsp;SEARXNG_ENGINES=<br />#&nbsp;SEARXNG_CATEGORIES=<br /><br />##&nbsp;===&nbsp;PostgreSQL&nbsp;Database&nbsp;Configuration&nbsp;===<br />#&nbsp;Configure&nbsp;PostgreSQL&nbsp;credentials.&nbsp;These&nbsp;should&nbsp;match&nbsp;the&nbsp;credentials&nbsp;used&nbsp;by&nbsp;the&nbsp;nuq-postgres&nbsp;container.<br />#&nbsp;If&nbsp;you&nbsp;change&nbsp;these,&nbsp;ensure&nbsp;all&nbsp;three&nbsp;are&nbsp;set&nbsp;consistently.<br />#&nbsp;Note:&nbsp;nuq-postgres&nbsp;requires&nbsp;using&nbsp;'postgres'&nbsp;as&nbsp;the&nbsp;database&nbsp;name&nbsp;for&nbsp;proper&nbsp;pg_cron&nbsp;initialization<br />POSTGRES_USER=postgres<br />POSTGRES_PASSWORD=postgres<br />POSTGRES_DB=postgres<br /><br />##&nbsp;===&nbsp;Redis&nbsp;Configuration&nbsp;===<br />#&nbsp;These&nbsp;are&nbsp;auto-configured&nbsp;by&nbsp;docker-compose.yaml.&nbsp;You&nbsp;shouldn't&nbsp;need&nbsp;to&nbsp;change&nbsp;them.<br />#&nbsp;REDIS_URL=redis://redis:6379<br />#&nbsp;REDIS_RATE_LIMIT_URL=redis://redis:6379<br /><br />##&nbsp;===&nbsp;Playwright&nbsp;Service&nbsp;===<br />#&nbsp;This&nbsp;is&nbsp;auto-configured&nbsp;by&nbsp;docker-compose.yaml.&nbsp;You&nbsp;shouldn't&nbsp;need&nbsp;to&nbsp;change&nbsp;it.<br />#&nbsp;PLAYWRIGHT_MICROSERVICE_URL=http://playwright-service:3000/scrape<br /><br />##&nbsp;===&nbsp;Supabase&nbsp;Setup&nbsp;(used&nbsp;to&nbsp;support&nbsp;DB&nbsp;authentication,&nbsp;advanced&nbsp;logging,&nbsp;etc.)&nbsp;===<br />#&nbsp;SUPABASE_ANON_TOKEN=<br />#&nbsp;SUPABASE_URL=<br />#&nbsp;SUPABASE_SERVICE_TOKEN=<br /><br />#&nbsp;Use&nbsp;if&nbsp;you've&nbsp;set&nbsp;up&nbsp;authentication&nbsp;and&nbsp;want&nbsp;to&nbsp;test&nbsp;with&nbsp;a&nbsp;real&nbsp;API&nbsp;key<br />#&nbsp;TEST_API_KEY=<br /><br />#&nbsp;This&nbsp;key&nbsp;lets&nbsp;you&nbsp;access&nbsp;the&nbsp;queue&nbsp;admin&nbsp;panel.&nbsp;Change&nbsp;this&nbsp;if&nbsp;your&nbsp;deployment&nbsp;is&nbsp;publicly&nbsp;accessible.<br />BULL_AUTH_KEY=CHANGEME<br /><br />##&nbsp;===&nbsp;PDF&nbsp;Parsing&nbsp;===<br />#&nbsp;Set&nbsp;if&nbsp;you&nbsp;have&nbsp;a&nbsp;llamaparse&nbsp;key&nbsp;you'd&nbsp;like&nbsp;to&nbsp;use&nbsp;to&nbsp;parse&nbsp;pdfs<br />#&nbsp;LLAMAPARSE_API_KEY=<br /><br />##&nbsp;===&nbsp;Monitoring&nbsp;===<br />#&nbsp;Set&nbsp;if&nbsp;you'd&nbsp;like&nbsp;to&nbsp;send&nbsp;server&nbsp;health&nbsp;status&nbsp;messages&nbsp;to&nbsp;Slack<br />#&nbsp;SLACK_WEBHOOK_URL=<br /><br />#&nbsp;Set&nbsp;if&nbsp;you'd&nbsp;like&nbsp;to&nbsp;send&nbsp;posthog&nbsp;events&nbsp;like&nbsp;job&nbsp;logs<br />#&nbsp;POSTHOG_API_KEY=<br />#&nbsp;POSTHOG_HOST=<br /><br />##&nbsp;===&nbsp;System&nbsp;Resource&nbsp;Configuration&nbsp;===<br />#&nbsp;Maximum&nbsp;CPU&nbsp;usage&nbsp;threshold&nbsp;(0.0-1.0).&nbsp;Worker&nbsp;will&nbsp;reject&nbsp;new&nbsp;jobs&nbsp;when&nbsp;CPU&nbsp;usage&nbsp;exceeds&nbsp;this&nbsp;value.<br />#&nbsp;Default:&nbsp;0.8&nbsp;(80%)<br />MAX_CPU=0.8<br /><br />#&nbsp;Maximum&nbsp;RAM&nbsp;usage&nbsp;threshold&nbsp;(0.0-1.0).&nbsp;Worker&nbsp;will&nbsp;reject&nbsp;new&nbsp;jobs&nbsp;when&nbsp;memory&nbsp;usage&nbsp;exceeds&nbsp;this&nbsp;value.<br />#&nbsp;Default:&nbsp;0.8&nbsp;(80%)<br />MAX_RAM=0.8<br /><br />#&nbsp;Number&nbsp;of&nbsp;workers&nbsp;per&nbsp;queue<br />NUM_WORKERS_PER_QUEUE=8<br /><br />#&nbsp;Concurrent&nbsp;requests&nbsp;for&nbsp;crawling<br />CRAWL_CONCURRENT_REQUESTS=10<br /><br />#&nbsp;Maximum&nbsp;concurrent&nbsp;jobs<br />MAX_CONCURRENT_JOBS=5<br /><br />#&nbsp;Browser&nbsp;pool&nbsp;size<br />BROWSER_POOL_SIZE=5<br /><br />#&nbsp;Set&nbsp;if&nbsp;you'd&nbsp;like&nbsp;to&nbsp;allow&nbsp;local&nbsp;webhooks&nbsp;to&nbsp;be&nbsp;sent&nbsp;to&nbsp;your&nbsp;self-hosted&nbsp;instance<br />#&nbsp;ALLOW_LOCAL_WEBHOOKS=true<br /><br />#&nbsp;Block&nbsp;media&nbsp;in&nbsp;Playwright<br />#&nbsp;BLOCK_MEDIA=true<br /><br />#&nbsp;Logging&nbsp;level&nbsp;(DEBUG,&nbsp;INFO,&nbsp;WARN,&nbsp;ERROR)<br />LOGGING_LEVEL=INFO</div><br /><br /><br /><img src ="http://www.blogjava.net/paulwong/aggbug/451774.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2026-04-15 11:03 <a href="http://www.blogjava.net/paulwong/archive/2026/04/15/451774.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Agent案例 - 规格驱动开发</title><link>http://www.blogjava.net/paulwong/archive/2026/02/06/451741.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Fri, 06 Feb 2026 15:07:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2026/02/06/451741.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/451741.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2026/02/06/451741.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/451741.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/451741.html</trackback:ping><description><![CDATA[<div><a href="https://github.com/github/spec-kit" target="_blank">https://github.com/github/spec-kit</a><br />
</div>
<div><br />
</div>
<h3>安装命令</h3>
<div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; border-image: none; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->uv&nbsp;tool&nbsp;install&nbsp;specify-cli&nbsp;--from&nbsp;git+https://github.com/github/spec-kit.git</div>
</div>
<div><br />
</div>
<h3>初始化项目</h3>
<div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; border-image: none; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;">#这个会在项目根目录下建立.claude/commands，并创建相关命令如speckit.plan，在命令行里输入这个就能干活</div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; border-image: none; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->specify&nbsp;init&nbsp;.&nbsp;--ai&nbsp;claude</div>
</div>
<div><br />
</div>
<h3>输入项目需求</h3>
<div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; border-image: none; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->#这个会根据输入建立spec.md的需求文档<br />
speckit.specify</div>
</div>
<div><br />
</div>
<h3>项目计划和设计</h3>
<div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; border-image: none; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->#建立项目计划和设计文档<br />
speckit.plan</div>
</div>
<div><br />
</div>
<h3>规划任务</h3>
<div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; border-image: none; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->#建立相应的任务，并有check&nbsp;box，完成则打✅<br />
speckit.tasks</div>
</div>
<div><br />
</div>
<h3>项目执行</h3>
<div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; border-image: none; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->#逐项执行任务，并标状态<br />
speckit.implement</div>
</div>
<div><br />
</div>
<div><br />
</div>
<div><br />
</div>
<img src ="http://www.blogjava.net/paulwong/aggbug/451741.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2026-02-06 23:07 <a href="http://www.blogjava.net/paulwong/archive/2026/02/06/451741.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>AGENT SKILL</title><link>http://www.blogjava.net/paulwong/archive/2026/01/27/451732.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Mon, 26 Jan 2026 16:01:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2026/01/27/451732.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/451732.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2026/01/27/451732.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/451732.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/451732.html</trackback:ping><description><![CDATA[通常我们指挥大模型干活的时候，如果只说一句，帮我制作一个人个网站，则大模型只是随机抽出一些案例，生成，出来的效果当然不合人意。
<div><br />
</div>
<div>agent skill解决的问题就是，一个skill只针对一个活，然后有个说明文件，说明干这个活，干得好的一个标准，如网站制作，如何配色标准，如何布局标准等，将这些和要干的活一起发给大模型，模型的输出就不再是随机了，而是按这个标准输出了，质量自然就提高了。</div>
<img src ="http://www.blogjava.net/paulwong/aggbug/451732.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2026-01-27 00:01 <a href="http://www.blogjava.net/paulwong/archive/2026/01/27/451732.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Agent案例 - 研发团队</title><link>http://www.blogjava.net/paulwong/archive/2026/01/26/451731.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Sun, 25 Jan 2026 17:03:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2026/01/26/451731.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/451731.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2026/01/26/451731.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/451731.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/451731.html</trackback:ping><description><![CDATA[<div>产品经理(product-manager.md)</div>
<div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; border-image: none; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->---<br />
name:&nbsp;product-manager<br />
description:&nbsp;Expert&nbsp;product&nbsp;manager&nbsp;specializing&nbsp;in&nbsp;product&nbsp;strategy,&nbsp;user-centric&nbsp;developnent,and&nbsp;business&nbsp;outcomes.&nbsp;Masters&nbsp;roadnap&nbsp;planning,&nbsp;feature&nbsp;prioritization,&nbsp;and&nbsp;cross-functionalleadership&nbsp;with&nbsp;focus&nbsp;on&nbsp;delivering&nbsp;products&nbsp;that&nbsp;users&nbsp;love&nbsp;and&nbsp;drive&nbsp;business&nbsp;growth.<br />
tools:&nbsp;Read,&nbsp;Write,&nbsp;Edit,&nbsp;Glob,&nbsp;Grep,&nbsp;WebFetch,&nbsp;WebSearch,&nbsp;Bash<br />
---<br />
<br />
You&nbsp;are&nbsp;a&nbsp;senior&nbsp;product&nbsp;manager&nbsp;with&nbsp;expertise&nbsp;in&nbsp;building&nbsp;successful&nbsp;products&nbsp;that&nbsp;delightusers&nbsp;and&nbsp;achieve&nbsp;business&nbsp;objectives.&nbsp;Your&nbsp;focus&nbsp;spans&nbsp;product&nbsp;strategy,&nbsp;user&nbsp;research,&nbsp;featureprioritization,&nbsp;and&nbsp;go-to-narket&nbsp;execution&nbsp;with&nbsp;enphasis&nbsp;on&nbsp;data-driven&nbsp;decisions&nbsp;and&nbsp;continuous1teration.<br />
<br />
when&nbsp;invoked:<br />
1.Query&nbsp;context&nbsp;nanager&nbsp;for&nbsp;product&nbsp;vision&nbsp;and&nbsp;narket&nbsp;context<br />
2.&nbsp;Review&nbsp;user&nbsp;feedback,&nbsp;analytics&nbsp;data,&nbsp;and&nbsp;competitive&nbsp;landscape<br />
3.Analyze&nbsp;opportunitles,user&nbsp;needs,and&nbsp;business&nbsp;impact<br />
4.Drive&nbsp;product&nbsp;decisions&nbsp;that&nbsp;balance&nbsp;user&nbsp;value&nbsp;and&nbsp;business&nbsp;goals<br />
<br />
Product&nbsp;management&nbsp;checklist:<br />
-&nbsp;User&nbsp;satisfaction&nbsp;&gt;&nbsp;80%&nbsp;achieved<br />
-Feature&nbsp;adoption&nbsp;tracked&nbsp;thoroughly<br />
-&nbsp;Business&nbsp;netrics&nbsp;achieved&nbsp;consistently<br />
-&nbsp;Roadnap&nbsp;updated&nbsp;quarterly&nbsp;properly<br />
-&nbsp;Backlog&nbsp;prioritized&nbsp;strategically<br />
-Analytics&nbsp;implenented&nbsp;conprehensively<br />
-Feedback&nbsp;loops&nbsp;active&nbsp;continuously<br />
-Market&nbsp;position&nbsp;strong&nbsp;measurably</div>
</div>
<div><br />
</div>
<div>全栈程序员(fullstack-developer.md)</div>
<div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; border-image: none; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;">---name:&nbsp;fullstack-developer<br />
description:&nbsp;End-to-end&nbsp;feature&nbsp;owmer&nbsp;with&nbsp;expertise&nbsp;across&nbsp;the&nbsp;entire&nbsp;stack.&nbsp;Deliversolutions&nbsp;from&nbsp;database&nbsp;to&nbsp;UI&nbsp;with&nbsp;focus&nbsp;on&nbsp;seamless&nbsp;Integration&nbsp;and&nbsp;optimal&nbsp;user&nbsp;exptools:&nbsp;Read,Write,&nbsp;Edit,&nbsp;Bash,Glob,&nbsp;Grep<br />
---<br />
<br />
You&nbsp;are&nbsp;a&nbsp;senior&nbsp;fullstack&nbsp;developer&nbsp;speclalizing&nbsp;in&nbsp;conplete&nbsp;feature&nbsp;development&nbsp;wittacross&nbsp;backend&nbsp;and&nbsp;frontend&nbsp;technologles.&nbsp;Your&nbsp;prinary&nbsp;focus&nbsp;1s&nbsp;del1vering&nbsp;coheslve,solutions&nbsp;that&nbsp;work&nbsp;seamlessly&nbsp;from&nbsp;database&nbsp;to&nbsp;user&nbsp;Interface.<br />
<br />
when&nbsp;invoked:<br />
1.&nbsp;Query&nbsp;context&nbsp;manager&nbsp;for&nbsp;full-stack&nbsp;architecture&nbsp;and&nbsp;existing&nbsp;patterns<br />
2.&nbsp;Analyze&nbsp;data&nbsp;flow&nbsp;from&nbsp;database&nbsp;through&nbsp;API&nbsp;to&nbsp;frontend<br />
3.Review&nbsp;authentication&nbsp;and&nbsp;authorization&nbsp;across&nbsp;all&nbsp;layers<br />
4.Design&nbsp;cohesive&nbsp;solution&nbsp;maintaining&nbsp;consistency&nbsp;throughout&nbsp;stack<br />
<br />
Fullstack&nbsp;development&nbsp;checklist:<br />
-&nbsp;Database&nbsp;schema&nbsp;aligned&nbsp;with&nbsp;API&nbsp;contracts<br />
-&nbsp;Type-safe&nbsp;API&nbsp;implenentation&nbsp;with&nbsp;shared&nbsp;types<br />
-&nbsp;Frontend&nbsp;components&nbsp;matching&nbsp;backend&nbsp;capabilities<br />
-&nbsp;Authentication&nbsp;flow&nbsp;spanning&nbsp;all&nbsp;Layers<br />
-&nbsp;Consistent&nbsp;error&nbsp;handling&nbsp;throughout&nbsp;stack<br />
-&nbsp;End-to-end&nbsp;testing&nbsp;covering&nbsp;user&nbsp;journeys<br />
-&nbsp;Performance&nbsp;optimization&nbsp;at&nbsp;each&nbsp;layer<br />
-&nbsp;Deployment&nbsp;pipeline&nbsp;for&nbsp;entire&nbsp;feature</div>
</div>
<div><br />
</div>
<div><br />
</div>
<div>QA(qa-export.md)</div>
<div>
<div style="background-color: #eeeeee; font-size: 13px; border-left-color: #cccccc; border-image: none; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br />
<br />
Code highlighting produced by Actipro CodeHighlighter (freeware)<br />
http://www.CodeHighlighter.com/<br />
<br />
-->---<br />
name:&nbsp;qa-expert<br />
description:Expert&nbsp;QA&nbsp;engineer&nbsp;specializing&nbsp;in&nbsp;comprehensive&nbsp;and&nbsp;quality&nbsp;metrics.&nbsp;Masters&nbsp;manual&nbsp;and&nbsp;automated&nbsp;testing,&nbsp;trwith&nbsp;focus&nbsp;on&nbsp;delivering&nbsp;high-quality&nbsp;software&nbsp;through&nbsp;system<br />
tools:&nbsp;Read,&nbsp;Grep,&nbsp;Glob,&nbsp;Bash<br />
---<br />
<br />
You&nbsp;are&nbsp;a&nbsp;senior&nbsp;QA&nbsp;expert&nbsp;with&nbsp;expertise&nbsp;in&nbsp;comprehensive&nbsp;qmethodologies,&nbsp;and&nbsp;quality&nbsp;metrics.&nbsp;Your&nbsp;focus&nbsp;spans&nbsp;test&nbsp;pl&nbsp;quality&nbsp;advocacy&nbsp;with&nbsp;emphasis&nbsp;on&nbsp;preventing&nbsp;defects,&nbsp;ensure&nbsp;high&nbsp;quality&nbsp;standards&nbsp;throughout&nbsp;the&nbsp;development&nbsp;lifecycle.<br />
<br />
When&nbsp;invoked:<br />
1.&nbsp;Query&nbsp;context&nbsp;manager&nbsp;for&nbsp;quality&nbsp;requirements&nbsp;and&nbsp;applic<br />
2.&nbsp;Review&nbsp;existing&nbsp;test&nbsp;coverage,&nbsp;defect&nbsp;patterns,&nbsp;and&nbsp;quality<br />
3.&nbsp;Analyze&nbsp;testing&nbsp;gaps,&nbsp;risks,&nbsp;and&nbsp;improvement&nbsp;opportunities<br />
4.&nbsp;Implement&nbsp;comprehensive&nbsp;quality&nbsp;assurance&nbsp;strategies</div>
</div>
<div><br />
</div>
<div>
<div>api-designer.md</div>
<div>code-reviewer.md</div>
<div><br />
</div>
<div><br />
</div>
<div><br />
</div>
</div>
<div><br />
</div>
<div><a href="https://github.com/VoltAgent/awesome-claude-code-subagents/tree/main" target="_blank">https://github.com/VoltAgent/awesome-claude-code-subagents/tree/main</a><br />
</div>
<div><br />
</div>
<div>Building a Harness for... Myself</div>
<div><a href="https://www.subaud.io/building-a-harness-for-myself/" target="_blank">https://www.subaud.io/building-a-harness-for-myself/</a><br />
</div>
<div><br />
</div>
<div><br />
</div>
<div><br />
</div>
<img src ="http://www.blogjava.net/paulwong/aggbug/451731.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2026-01-26 01:03 <a href="http://www.blogjava.net/paulwong/archive/2026/01/26/451731.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>智谱文字变图像模型zai-org/GLM-Image </title><link>http://www.blogjava.net/paulwong/archive/2026/01/25/451730.html</link><dc:creator>paulwong</dc:creator><author>paulwong</author><pubDate>Sun, 25 Jan 2026 15:26:00 GMT</pubDate><guid>http://www.blogjava.net/paulwong/archive/2026/01/25/451730.html</guid><wfw:comment>http://www.blogjava.net/paulwong/comments/451730.html</wfw:comment><comments>http://www.blogjava.net/paulwong/archive/2026/01/25/451730.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/paulwong/comments/commentRss/451730.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/paulwong/services/trackbacks/451730.html</trackback:ping><description><![CDATA[开源，可在huggingface下载，模型id：zai-org/GLM-Image&nbsp;<a href="https://huggingface.co/zai-org/GLM-Image" target="_blank">https://huggingface.co/zai-org/GLM-Image</a>
<div>生成文字不乱码</div>
<img src ="http://www.blogjava.net/paulwong/aggbug/451730.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/paulwong/" target="_blank">paulwong</a> 2026-01-25 23:26 <a href="http://www.blogjava.net/paulwong/archive/2026/01/25/451730.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>