تخطَّ إلى المحتوى
إصدار Phronesis v0.1.0 ألفا متاحاقرأ الإعلان
Phronesis

مفتوح المصدر · Apache 2.0 · Python 3.11+

حكمة عملية لأنظمة وكلاء الذكاء الاصطناعي.

Phronesis (φρόνησις): عند أرسطو هي الحكمة العملية - القدرة على التداول الجيد والتصرف بفطنة في مواقف ملموسة. يمتلك نموذج اللغة الكبير episteme (المعرفة). يحتاج الوكيل إلى phronesis.

hello_phronesis.py
from phronesis.agents import agent
from phronesis.providers import anthropic


@agent(
    model=anthropic(model="claude-sonnet-4-6"),
    system_prompt="You investigate questions thoroughly and cite sources.",
)
def researcher() -> str:
    """Investigate a question and synthesize a cited answer."""


result = await researcher.run("What is phronesis in Aristotelian ethics?")
print(result.output)

لماذا Phronesis

الوكيل ليس روبوت محادثة مزوَّدًا بأدوات.

تعرف نماذج اللغة الكبيرة أشياء - تلك هي الإبستيمي (episteme). لكن على الوكلاء أن يقرروا ويتصرفوا بفطنة في مواقف ملموسة. تلك هي الفرونسيس (phronesis). تعامل معظم أطر الوكلاء وكلاءها كروبوتات محادثة معززة ملصقة بحلقة استخدام أدوات. أما Phronesis فيتعامل معهم كأنظمة متداولة ذات عقود صريحة: مدخلات مطبَّعة، تأثيرات مُعلنة، ذاكرة محدودة، أنماط تنفيذ مُسمَّاة.

تفرض الأطر الحالية اختيارًا. من جهة، تكتب تدفق تحكم اعتباطيًا كشيفرة: أقصى تعبيرية ونظام متعدد الوكلاء لا يستطيع أحد تنقيحه بعد ستة أشهر. ومن جهة أخرى، يُوصف كل شيء بـ YAML أو بُناة رسوم بيانية: مقروء للوهلة الأولى، مستحيل بمجرد أن تحتاج شيئًا غير تافه. يفصل Phronesis المواصفة التعريفية عن التنفيذ في زمن التشغيل. الوكلاء والأدوات والذاكرة والأنابيب هي مواصفات مطبَّعة وثابتة وقابلة للتسلسل إلى JSON. تأتي أنماط التنفيذ من كتالوج مغلق ومُعرَّف جيدًا - تعبيرية دون فوضى.

كل تشغيل قابل للمراقبة عبر OpenTelemetry، وكل مواصفة قابلة للإصدار، وكل عقد فحص في زمن التشغيل، لا تعليق في موجِّه. هذا هو الفرق بين إطار ينتج عروضًا توضيحية وآخر ينتج أنظمة يمكنك تشغيلها.

By the numbers

Built like infrastructure, not a demo.

Phronesis is early, but it is not thin. The surface is small on purpose - and every layer carries its own tests, types, and observability.
19

Execution modes

A closed, named catalog - from Sequence and Parallel to Reflexion and Tree Search.

22

Runnable examples

Every mode with a deterministic cassette, plus a full multi-agent mini-app.

1,600+

Tests

Branch coverage gated at 90% - the build fails below the floor.

14

Stable modules

Agents, tools, memory, providers, MCP, pipelines, observability and more.

100%

Typed surface

mypy --strict across the entire source tree, no escape hatches.

Apache 2.0

Open source

Permissive license, public roadmap, no enterprise gates.

جولة في الشيفرة

واجهة برمجة التطبيقات في أربع مقتطفات.

بايثون حقيقي. شكل حقيقي. الإطار أدناه في ألفا مبكرة - ستنمو السطح، لكن التصميم سيبقى بهذه البساطة.

يربط الوكيل نموذجًا وأدوات وذاكرة تحت مواصفة تعريفية واحدة.

agent.py
from phronesis import ToolEffect
from phronesis.agents import agent
from phronesis.providers import anthropic
from phronesis.tools import tool


@tool(effects=(ToolEffect.NETWORK,))
async def search_web(query: str, limit: int = 5) -> list[str]:
    """Search the web and return ranked snippets."""
    ...


@agent(
    model=anthropic(model="claude-sonnet-4-6"),
    tools=(search_web,),
    system_prompt="You are a careful research assistant.",
    max_iterations=8,
)
def assistant() -> str:
    """Answer questions grounded in live search results."""

المبادئ

ستة خيارات، مطبَّقة في كل مكان.

  • التركيب بدلًا من الوراثة

    يُكوَّن الوكلاء من أجزاء - نموذج وأدوات وذاكرة وموجِّهات - لا عبر الفئات الفرعية. أنت تُجمِّع؛ لا تتجاوز.

  • غير متزامن أولًا

    البث والتزامن والإلغاء افتراضات أساسية. لا توجد واجهة برمجة متزامنة موازية لصيانتها.

  • مطبَّع بقوة

    Pydantic v2 في كل مكان. الأنواع ليست توثيقًا - بل عقود في زمن التشغيل يفرضها الإطار.

  • مواصفات ثابتة وتشغيلات متغيرة

    التعريفات قابلة للتسلسل إلى JSON وقابلة للاستنساخ. حالة التنفيذ تعيش منفصلة، قابلة للمراقبة والاستعلام.

  • قابلية مراقبة مدمجة

    فترات OpenTelemetry لكل تشغيل وكيل واستدعاء أداة ومرحلة أنبوب - من أول التزام، لا مُلصقة لاحقًا.

  • كتالوج مغلق لأنماط التنفيذ

    Sequence وParallel وReActLoop وConsensus وDebate وHandoff. أنماط مُسمَّاة يمكن الاستدلال عليها - لا تدفقات تحكم اعتباطية.

ماذا في الداخل

سطح صغير مبدئي.

الإطار ضيِّق عمدًا. تستحق كل طبقة مكانها إما بجعل النظام أكثر أمانًا في التشغيل أو بجعل الشيفرة أسهل قراءة بعد ستة أشهر.

الجوهر

الأوّليّات التي يُبنى منها كل وكيل.

  • الوكلاء
  • الأدوات
  • تكامل MCP
  • Providers (Anthropic, OpenAI, Ollama, vLLM)
  • Context builders

الحالة والسياق

كيف يتذكر الوكلاء وماذا يتشاركون.

  • الذاكرة (الحلقية، الدلالية، العاملة، المشتركة)
  • Checkpoints (pause and resume)
  • الجلسات

التنسيق

كيف يتشكل الوكلاء إلى أنظمة.

  • الأنابيب
  • أنماط التنفيذ
  • Provider middleware
  • Record / replay cassettes
  • قابلية المراقبة

Engineering

The guarantees, not the promises.

An agent framework is only as trustworthy as the discipline behind it. These are the gates every change passes before it lands.
  • Typed end to end

    mypy --strict and Pydantic v2 specs across the whole source tree. No untyped escape hatches.

  • Tested to a floor

    1,600+ tests with branch coverage gated at 90% - the build fails below it, never above it on paper.

  • Deterministic replay

    Record once, replay forever: cassette-backed runs make agent behavior reproducible in tests and CI without a network.

  • Observable by construction

    OpenTelemetry spans for every agent run, tool call, pipeline stage, and MCP session - correlated by stable ids.

  • Immutable specs

    Agents, tools, and pipelines are frozen, JSON-serializable dataclasses - versionable, diffable, reproducible.

  • Lint-clean

    ruff format and a strict ruff check gate every commit, alongside the type and test suites.

التثبيت

أمر واحد. Python 3.11 أو أحدث.

$pip install phronesis-framework

حالة المشروع

Phronesis في ألفا مبكرة.

ستتغير واجهة البرمجة. نحن نعمل علنًا لبناء إطار يأخذ أنظمة الوكلاء على محمل الجد - مطبَّع، قابل للتركيب، قابل للمراقبة. لا ادعاءات إنتاج، ولا دراسات حالة مُختلقة، ولا بوابات مؤسسية. فقط الشيفرة والتزام صادق بتصميمها.

نرحب بالملاحظات والأفكار والمساهمات عبر GitHub Discussions وIssues. خارطة الطريق والنقاط الخشنة والأسئلة المفتوحة موجودة جميعها في المستودع.