[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-qclaw-stock-analysis-system-template-en":3,"article-related-qclaw-stock-analysis-system-template-en":30,"series-ai-agent-06b4c6a3-4e55-4e2b-b1be-28ab0ec8ecca":80},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":22,"views":26,"created_at":27,"published_at":28,"topic_cluster_id":29},"06b4c6a3-4e55-4e2b-b1be-28ab0ec8ecca","qclaw-stock-analysis-system-template-en","Qclaw lets you build a stock analysis system","\u003Cp data-speakable=\"summary\">This breaks Qclaw into a copyable stock-analysis workflow.\u003C\u002Fp>\u003Cp>I've been messing with \u003Ca href=\"\u002Ftag\u002Fai-agents\">AI agents\u003C\u002Fa> for a while now, and honestly, most of them feel like overeager interns. They nod at everything, they produce a decent-looking answer, and then they quietly leave me to clean up the mess. That gets especially annoying when I'm trying to build something practical, like a stock analysis system. I don't need a chatbot that chats. I need a tool that can pull data, compare signals, keep notes, and tell me when my assumptions are garbage.\u003C\u002Fp>\u003Cp>So when I saw the Qclaw write-up on \u003Ca href=\"https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F2018780495001964820\">Zhihu\u003C\u002Fa>, it clicked why people are excited about this class of tool. The article frames \u003Ca href=\"\u002Ftag\u002Fopenclaw\">OpenClaw\u003C\u002Fa>\u002FQclaw as a move from \"能说\" to \"能做\" and describes a long line of people showing up for installation at Tencent's Shenzhen campus. I can't verify the scene from the post alone, and I don't need the hype anyway. The useful bit is simpler: the post is about turning a natural-language request into a chain of actions. That is exactly the shape you want for a personal stock-analysis workflow.\u003C\u002Fp>\u003Ch2>Stop asking for answers. Make the agent run a process.\u003C\u002Fh2>\u003Cblockquote>OpenClaw 恰好打通了“一句话指令”到“自动完成任务”的全链路。\u003C\u002Fblockquote>\u003Cp>What this actually means is that the \u003Ca href=\"\u002Ftag\u002Fagent\">agent\u003C\u002Fa> is not the analyst. It is the operator. I say, \"Scan these tickers, pull recent filings, summarize risk, and flag anything that changed this week,\" and the system does the boring part. That matters because stock analysis dies when every step depends on my mood. If I have to manually open five tabs, the workflow collapses the moment I'm busy.\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1779491771426-6bqb.png\" alt=\"Qclaw lets you build a stock analysis system\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>I ran into this the hard way while prototyping research notes. I kept building prompts that asked for a final opinion. The result was always fluffy. Once I switched to process prompts, things got better fast. First collect the inputs. Then normalize them. Then compare against a baseline. Then write the note. The model stopped pretending to be a genius and started acting like a helper that could follow a checklist.\u003C\u002Fp>\u003Cp>How to apply it: define your stock workflow as a sequence of actions, not a single question. For example:\u003C\u002Fp>\u003Cul>\u003Cli>Fetch price history for the last 90 days\u003C\u002Fli>\u003Cli>Pull the latest earnings release and transcript\u003C\u002Fli>\u003Cli>Summarize revenue, margin, and guidance changes\u003C\u002Fli>\u003Cli>Compare the result against the previous quarter\u003C\u002Fli>\u003Cli>Write a short buy\u002Fwatch\u002Favoid note\u003C\u002Fli>\u003C\u002Ful>\u003Cp>If Qclaw can orchestrate tools, this is where it earns its keep. If it cannot, you still use the same structure by making the model output each step in order. The point is to stop treating analysis like a chat reply.\u003C\u002Fp>\u003Ch2>The real job is data collection, not opinion generation\u003C\u002Fh2>\u003Cblockquote>它正以开源之力推动一场人机协作的生产力革命。\u003C\u002Fblockquote>\u003Cp>I don't love the phrasing in that sentence, but the underlying idea is fine: the value is in the workflow, not the slogan. For stock analysis, the hard part is gathering the right inputs consistently. Price data is easy. Clean, comparable, decision-useful data is not. You want earnings dates, guidance changes, insider activity, sector context, and a note about what moved since your last review.\u003C\u002Fp>\u003Cp>What this actually means is that your agent should spend most of its time fetching and structuring, not “thinking.” I care less about a polished conclusion than I do about whether it remembered to include the last three quarters of revenue growth. If the input set is incomplete, the output is theater.\u003C\u002Fp>\u003Cp>I hit this when I tried to use a model for watchlist maintenance. It kept summarizing the stock beautifully, but it skipped the one thing I needed: what changed since last week. That's when I realized the system needed a persistent record. Not just a fresh answer every time. A memory of prior notes, prior metrics, and prior alerts.\u003C\u002Fp>\u003Cp>How to apply it:\u003C\u002Fp>\u003Cul>\u003Cli>Store a baseline snapshot for each ticker\u003C\u002Fli>\u003Cli>Track only the fields you actually review weekly\u003C\u002Fli>\u003Cli>Mark deltas, not just raw values\u003C\u002Fli>\u003Cli>Keep source links next to every claim\u003C\u002Fli>\u003C\u002Ful>\u003Cp>If you're wiring this with tools, a public market-data \u003Ca href=\"\u002Ftag\u002Fapi\">API\u003C\u002Fa>, \u003Ca href=\"\u002Ftag\u002Fsec\">SEC\u003C\u002Fa> filings, and a notes database are enough to start. If you're doing it manually, the same rule still applies: collect first, judge second.\u003C\u002Fp>\u003Ch2>Build a watchlist agent, not a stock-picker oracle\u003C\u002Fh2>\u003Cblockquote>人们不再满足于 AI 给出答案，更希望它能够成为你的私人助手。\u003C\u002Fblockquote>\u003Cp>That's the line I actually agree with. A private assistant for stock analysis is useful. A fake oracle is expensive nonsense. I don't want a model telling me which stock will moon. I want it to keep my watchlist tidy, surface changes, and remind me when a thesis is getting stale.\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1779491764412-97sp.png\" alt=\"Qclaw lets you build a stock analysis system\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>What this actually means is that your first version should be boring. Watchlist agents are better than prediction agents because they can be evaluated. Did it catch the earnings date? Did it notice the margin drop? Did it flag the CEO sale? Those are concrete checks. \"Will this outperform?\" is where people start lying to themselves.\u003C\u002Fp>\u003Cp>I used to overcomplicate this by asking for a full investment memo every time. Total waste. The useful version is a small recurring job: review the same 20 names every morning, summarize what changed, and sort them by urgency. That gives me a queue, not a sermon.\u003C\u002Fp>\u003Cp>How to apply it:\u003C\u002Fp>\u003Cul>\u003Cli>Pick a fixed universe of tickers\u003C\u002Fli>\u003Cli>Assign each one a thesis tag: growth, value, turnaround, dividend\u003C\u002Fli>\u003Cli>Have the agent update one-line status notes\u003C\u002Fli>\u003Cli>Generate alerts only when a threshold changes\u003C\u002Fli>\u003C\u002Ful>\u003Cp>If you want to make this genuinely helpful, add a “why I own this” field and compare it against current facts. That is where the assistant earns its place.\u003C\u002Fp>\u003Ch2>Use the model for synthesis, but keep the math outside the model\u003C\u002Fh2>\u003Cp>I've learned this one by getting burned. Models are decent at summarizing and terrible at pretending they did arithmetic carefully. So if you're building a stock analysis system, keep the math in code and let the model handle the narrative. Price-to-sales, moving averages, drawdown, earnings surprise, revenue growth, all of that should come from deterministic code or a trusted API.\u003C\u002Fp>\u003Cp>What this actually means is simple: don't ask the model to calculate anything you can calculate yourself. Ask it to explain the result. Ask it to compare. Ask it to point out oddities. That keeps your system honest.\u003C\u002Fp>\u003Cp>I ran a version of this with a few basic screening rules. The model was much better once it received structured inputs like:\u003C\u002Fp>\u003Cul>\u003Cli>Revenue growth: 18%\u003C\u002Fli>\u003Cli>Gross margin: down 240 bps\u003C\u002Fli>\u003Cli>EPS surprise: -7%\u003C\u002Fli>\u003Cli>Guidance: raised\u003C\u002Fli>\u003C\u002Ful>\u003Cp>From there, the model could write a decent note: growth is still there, margin pressure is real, guidance offset some of the miss. That is useful. Letting it invent the numbers is not.\u003C\u002Fp>\u003Ch2>Give it a memory, or it will repeat itself forever\u003C\u002Fh2>\u003Cp>This is the part most people skip, and then they wonder why every output feels generic. A stock analysis assistant needs memory. Not just chat history. A structured store of prior decisions, prior notes, and prior alerts. Otherwise the agent keeps rediscovering the same facts like it's the first day on the job.\u003C\u002Fp>\u003Cp>What this actually means is that every analysis run should read and write state. Read the last note. Read the last metrics snapshot. Write a new snapshot and a short change log. If you do that, the assistant can answer questions like “what changed since last quarter?” instead of dumping a fresh summary with no context.\u003C\u002Fp>\u003Cp>I learned this from my own watchlist chaos. Without memory, I kept reading the same company over and over and getting a slightly different summary each time. With memory, the system started acting like a research notebook. That is a much better fit for investors who actually review names regularly.\u003C\u002Fp>\u003Cp>How to apply it:\u003C\u002Fp>\u003Cul>\u003Cli>Use a simple database table per ticker\u003C\u002Fli>\u003Cli>Save timestamped snapshots\u003C\u002Fli>\u003Cli>Store the last thesis and the last red flags\u003C\u002Fli>\u003Cli>Diff the new run against the previous one\u003C\u002Fli>\u003C\u002Ful>\u003Cp>If Qclaw gives you tool orchestration plus persistence hooks, great. If not, bolt on a database and treat the model as a writer on top of it.\u003C\u002Fp>\u003Ch2>Keep the output short enough to read before the market moves\u003C\u002Fh2>\u003Cp>Long reports feel impressive until you try to use them. Then they become dead weight. For a stock analysis system, the output should be short, structured, and easy to scan. I want the top line, the change, the risk, and the next action. That's it.\u003C\u002Fp>\u003Cp>What this actually means is that the agent should produce something like a briefing card, not a thesis paper. If I need more detail, I can ask for it. The first pass should help me decide whether to keep digging.\u003C\u002Fp>\u003Cp>I prefer a format that looks like this:\u003C\u002Fp>\u003Cul>\u003Cli>Current status\u003C\u002Fli>\u003Cli>What changed\u003C\u002Fli>\u003Cli>What matters now\u003C\u002Fli>\u003Cli>What I should do next\u003C\u002Fli>\u003C\u002Ful>\u003Cp>That format is brutally practical. It keeps the model from wandering into generic commentary about macro conditions and “investor sentiment,” which is usually just filler. If a system cannot produce a short actionable note, it is not ready to sit in my workflow.\u003C\u002Fp>\u003Ch2>The template you can copy\u003C\u002Fh2>\u003Cpre>\u003Ccode>## Stock analysis assistant workflow for Qclaw\n\nYou are my stock analysis operator, not my investment advisor.\n\n### Goal\nKeep a watchlist updated, summarize changes, and flag only the items that need attention.\n\n### Inputs\n- Ticker symbol or watchlist name\n- Time window: daily, weekly, or quarterly\n- Data sources:\n  - Price history\n  - Earnings releases\n  - Earnings transcripts\n  - SEC filings or local filing source\n  - News feed\n  - My prior notes database\n\n### Rules\n1. Do not invent numbers.\n2. Use tools or structured data for all calculations.\n3. Compare every new run against the prior snapshot.\n4. Only flag a stock if something changed materially.\n5. Keep the final note under 200 words unless I ask for detail.\n\n### Workflow\n1. Load the watchlist.\n2. Fetch the latest data for each ticker.\n3. Normalize the data into a fixed schema.\n4. Diff the new snapshot against the previous snapshot.\n5. Summarize changes in plain language.\n6. Assign one of three statuses:\n   - Buy watch\n   - Hold\n   - Review now\n7. Save the new snapshot and note.\n\n### Output format\nFor each ticker, return:\n- Ticker\n- Status\n- What changed\n- Why it matters\n- Risks\n- Next action\n\n### Example output\nTicker: AAPL\nStatus: Hold\nWhat changed: Revenue growth stayed steady, margin improved, guidance unchanged.\nWhy it matters: The thesis is intact, but there is no new catalyst.\nRisks: Slower hardware demand, valuation compression.\nNext action: Recheck after next earnings.\n\n### Prompt for the model\nUse the following instruction:\n\n\"Review the supplied ticker data and prior note. Summarize only the material changes. If the data is incomplete, say what is missing. Do not speculate. Keep the answer concise and structured.\"\n\n### Optional tool calls\n- fetch_price_history(ticker, window)\n- fetch_earnings_release(ticker)\n- fetch_transcript(ticker)\n- fetch_filings(ticker)\n- get_prior_note(ticker)\n- save_note(ticker, note)\n\n### Optional scoring\nScore each ticker from 1 to 5 on:\n- Momentum\n- Fundamentals\n- Thesis health\n- Alert priority\n\n### Final reminder\nIf the agent cannot explain what changed since the last review, the system is not useful yet.\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>That template is intentionally plain. I want something I can paste into a prompt, a workflow file, or a simple agent wrapper without spending half a day translating buzzwords into actual steps. Start there, then add tools later.\u003C\u002Fp>\u003Cp>For the original source, I started from the Zhihu post at \u003Ca href=\"https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F2018780495001964820\">https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F2018780495001964820\u003C\u002Fa>. The structure and template above are my own breakdown and adaptation for a stock-analysis workflow, not a verbatim reproduction of the post.\u003C\u002Fp>","I break down Qclaw into a stock-analysis workflow you can copy, from data pull to screening, notes, and alerts.","zhuanlan.zhihu.com","https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F2018780495001964820",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1779491771426-6bqb.png","ai-agent","en","29ed2f08-0c21-47a8-af71-6a4d37626c2e",[17,18,19,20,21],"Qclaw","stock analysis","AI agent","watchlist","workflow",[23,24,25],"Turn stock analysis into a repeatable workflow, not a single prompt.","Keep calculations outside the model and use the model for synthesis.","Add memory and diffing so the assistant reports what changed.",4,"2026-05-22T23:15:45.64432+00:00","2026-05-22T23:15:45.631+00:00","a9bee732-b07c-4e5b-a0e6-3048577e32a7",{"tags":31,"relatedLang":39,"relatedPosts":43},[32,34,35,36,38],{"name":17,"slug":33},"qclaw",{"name":19,"slug":13},{"name":21,"slug":21},{"name":18,"slug":37},"stock-analysis",{"name":20,"slug":20},{"id":15,"slug":40,"title":41,"language":42},"qclaw-stock-analysis-system-template-zh","Qclaw 把選股變成工作流","zh",[44,50,56,62,68,74],{"id":45,"slug":46,"title":47,"cover_image":48,"image_url":48,"created_at":49,"category":13},"5efa67dd-b9f7-4a2f-8c68-3a4bc6a6b7d9","claude-code-dynamic-workflow-ai-harness-en","Claude Code 动态工作流：AI 自写 Harness","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781035372495-9czj.png","2026-06-09T20:02:22.33375+00:00",{"id":51,"slug":52,"title":53,"cover_image":54,"image_url":54,"created_at":55,"category":13},"2bd28e0e-0f4b-4987-a961-28763c1e1926","agent-orchestration-enterprise-ai-layer-en","Agent orchestration is the missing layer for enterprise AI","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780984981174-08mj.png","2026-06-09T06:02:31.384174+00:00",{"id":57,"slug":58,"title":59,"cover_image":60,"image_url":60,"created_at":61,"category":13},"95684312-23dc-4a78-a917-df14d132c5fa","ai-agents-use-blockchain-trust-layer-en","AI agents use blockchain as a trust layer","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780980506080-ki4s.png","2026-06-09T04:48:01.710214+00:00",{"id":63,"slug":64,"title":65,"cover_image":66,"image_url":66,"created_at":67,"category":13},"0208e47f-7d4c-4473-a0f9-4cd193b5c139","8-rag-patterns-demos-into-prod-en","8 RAG patterns that turn demos into prod","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780971552707-qpl7.png","2026-06-09T02:18:36.760049+00:00",{"id":69,"slug":70,"title":71,"cover_image":72,"image_url":72,"created_at":73,"category":13},"b413d484-6786-4c32-abdc-77f010ac7eba","fine-tuning-beats-rag-style-not-facts-en","Fine-tuning beats RAG when the goal is style, not facts","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780924681800-5xji.png","2026-06-08T13:17:25.701649+00:00",{"id":75,"slug":76,"title":77,"cover_image":78,"image_url":78,"created_at":79,"category":13},"57beb8b4-c233-400f-b95b-a97be1cf9d02","openclaw-small-business-ai-staff-en","OpenClaw shows how small businesses use AI staff","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780904882032-yp13.png","2026-06-08T07:47:27.730921+00:00",[81,86,91,96,101,106,111,116,121,126],{"id":82,"slug":83,"title":84,"created_at":85},"03db8de8-8dc2-4ac1-9cf7-898782efbb1f","anthropic-claude-ai-agent-task-automation-en","Anthropic's Claude AI Agent: A New Era of Task Automation","2026-03-25T16:25:06.513026+00:00",{"id":87,"slug":88,"title":89,"created_at":90},"045d1abc-190d-4594-8c95-91e2a26f0c5a","googles-2026-ai-agent-report-decoded-en","Google’s 2026 AI Agent Report, Decoded","2026-03-26T11:15:23.046616+00:00",{"id":92,"slug":93,"title":94,"created_at":95},"e64aba21-254b-4f93-aa21-837484bb52ec","kimi-k25-review-stronger-still-not-legend-en","Kimi K2.5 review: stronger, still not a legend","2026-03-27T07:15:55.385951+00:00",{"id":97,"slug":98,"title":99,"created_at":100},"30dfb781-a1b2-4add-aebe-b3df40247c37","claude-code-controls-mac-desktop-en","Claude Code now controls your Mac desktop","2026-03-28T03:01:59.384091+00:00",{"id":102,"slug":103,"title":104,"created_at":105},"254405b6-7833-4800-8e13-f5196deefbe6","cloudflare-100x-faster-ai-agent-sandbox-en","Cloudflare’s 100x Faster AI Agent Sandbox","2026-03-28T03:09:44.356437+00:00",{"id":107,"slug":108,"title":109,"created_at":110},"04f29b7f-9b91-4306-89a7-97d725e6e1ba","openai-backs-isara-agent-swarm-bet-en","OpenAI backs Isara’s agent-swarm bet","2026-03-28T03:15:27.849766+00:00",{"id":112,"slug":113,"title":114,"created_at":115},"3b0bf479-e4ae-4703-9666-721a7e0cdb91","openai-plan-automated-ai-researcher-en","OpenAI’s plan for an automated AI researcher","2026-03-28T03:17:42.312819+00:00",{"id":117,"slug":118,"title":119,"created_at":120},"fe91bce0-b85d-4efa-a207-24ae9939c29f","harness-engineering-ai-agent-reliability-2026","Harness Engineering: From Bridle to Operating System, The Missing Link in AI Agent Reliability","2026-03-31T06:36:55.648751+00:00",{"id":122,"slug":123,"title":124,"created_at":125},"7a09007d-820f-43b3-8607-8ad1bfcb94c8","mcp-explained-from-prompts-to-production-en","MCP Explained: From Prompts to Production","2026-04-01T09:24:40.089177+00:00",{"id":127,"slug":128,"title":129,"created_at":130},"116d5ee9-a4f1-4b5a-aac5-5d035dd22bbe","amazon-bedrock-agents-multi-agent-workflows-en","Amazon Bedrock Agents Gets Multi-Agent Workflows","2026-04-01T09:30:30.197685+00:00"]