Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

feat(adapter/typed-decision-local): local model backend for contract:typed-decision (llama.cpp / Ollama / vLLM)

Closed
#1,431 1 comment 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

@liwenjie200543 is already working on this.

Since Oct 7, 2026.

  • #1551 by @liwenjie200543 — open

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
42/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
ollama, python

Research direction

Start by reading tools/typed-decision/tool.md, especially the Interface section, then review the existing cloud backend introduced by PR #1402 and the adapter guidance in docs/adapters/registry.md. Confirm how local OpenAI-compatible and Ollama endpoints expose structured outputs, and use docs/vendor-neutrality.md to define the supported configuration. Done means a local DecisionProvider supports choice and score while failing open with TypedDecisionUnavailable on connection, timeout, or schema failure.

Written by the indexing model from the issue text.

Description

enhancement family:tools

Goal: A local-model backend adapter for \contract:typed-decision\ (\ ools/typed-decision/), supporting llama.cpp, Ollama, or vLLM endpoints.

Why: PR #1402 introduced the \contract:typed-decision\ interface with TypeSafe Jev API as the initial cloud backend. Providing a local-model backend enables offline, zero-egress structured decisions without third-party network calls and establishes a second independent backend for vendor neutrality.

What it needs to do (see \ ools/typed-decision/tool.md\ § Interface):

  • Implement \DecisionProvider\ (\choice, \score,
    oul) against local OpenAI-compatible or Ollama endpoints (e.g. \http://localhost:11434/v1\ or \http://localhost:8080/v1).
  • Support structured outputs via JSON schema or constrained grammars (e.g. GBNF) for discrete choice selection and bounded scale evaluation.
  • Strictly adhere to \TypedDecisionUnavailable\ fail-open semantics on connection, timeout, or schema failure.

References: \ ools/typed-decision/tool.md, \docs/adapters/registry.md, \docs/vendor-neutrality.md.

Dominant language
Python
Stars
113
Forks
95
Avg merge
10h 48m
Merged PRs (30d)
348

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from apache/magpie

All issues in apache/magpie

Similar issues

More Python issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.