Qwen Meetup Draft: Function Calling Harness 2 Boosts CoT Compliance from 9.91% to 100% via Structured Schemas

A talk at Qwen Meetup Korea (end of May) presents a second iteration of the function-calling harness pattern. The original harness pushed qwen3-coder-next from 6.75% to 100% on backend codegen using type validation and compiler feedback. This update extends the same idea to domains that lack a compiler: investment memos, legal opinions, and clinical charts.
Schema-Driven CoT Compliance
The core mechanism is a TypeScript schema (using typia tags) that forces the model's reasoning into a required form. Every field must be filled or the submission is rejected. Example schema for an investment memo:
import { tags } from "typia";
export interface IInvestmentMemo {
recommendation: "BUY" | "HOLD" | "SELL";
thesis: {
consensusView: string;
differentiatedView: string;
};
counterThesis: {
bearCase: string;
ourResponse: string;
};
// bull / base / bear all required — blocks submitting just the base case
scenarios: {
bull: IScenario;
base: IScenario;
bear: IScenario;
};
// empty arrays are sealed
valuationDrivers: IValuationDriver[] & tags.MinItems<1>;
killConditions: IKillCondition[] & tags.MinItems<1>;
evidenceSources: IEvidenceSource[] & tags.MinItems<1>;
}
// Falsifiable thresholds only — blocks free-form like "trust in management"
export type IKillCondition =
| { type: "price_drawdown"; percentBelowEntry: number }
| { type: "metric_breach"; metric: string; below: number }
| { type: "milestone_miss"; expectedBy: string; what: string };
The schema is then validated by running it on historical investment cases — same idea as backtesting a trading strategy on market data. The diff shows which past calls the schema would have gotten right and which it missed; you add what's missing.
Measured CoT Compliance
Using AutoBE's CoT feature (not financial investment analysis itself), qwen3.6-27b keeps up with frontier models on these CoT-compliance schemas. The harness brings compliance from 9.91% to 100%.
Who It's For
Developers building AI agents that need structured, verifiable reasoning in domains without automatic correctness checks (e.g., finance, legal, medical).
📖 Read the full source: r/LocalLLaMA
Previous presentation: Part 1
👀 See Also

WAYD: A 60-Second Social Break Inside Claude Code, Cursor, and Copilot CLI
WAYD is a plugin for Claude Code, Cursor, and Copilot CLI that lets you post one-line vibes about your coding day under mood-tags and scroll a feed of other devs' reactions — all from your terminal, backed by GitHub Issues.

Run local LLMs on your phone with Observer: offline agents for monitoring and logging
Observer is an open-source iOS app that runs multimodal LLMs locally on your phone to monitor events, log data, and trigger Discord notifications — all offline and free.

Local Semantic Memory Search for OpenClaw Agents Using Harrier Embeddings
Run a local embedding server with Microsoft's Harrier model, expose an Ollama-compatible API, and wire OpenClaw's memorySearch config for local semantic memory retrieval without external services.
Almanac: An AI Agent with a Self-Updating Company Wiki
Almanac (YC S26) is an always-on AI agent that compiles your company's tools into a wiki, enabling proactive task completion and long-horizon follow-ups. It runs on its own computer, connects to Gmail, Slack, and more, and is now live with a 7-day trial.