وكيل البرمجة

ابنِ وكلاء يعملون على قاعدة برمجية: يقرؤون الملفات ويحررونها، ويشغّلون الأوامر والاختبارات في بيئة معزولة، ويخططون للعمل متعدد الخطوات، ويتقدمون نحو هدف باستقلالية، وينسقون بين المراجعين المتوازيين — وكل ذلك أصيل في ADK-Rust، مع أي مزود للنماذج.

يتكوّن هذا من بضعة مكونات مركزة بدلًا من إطار عمل أحادي ضخم:

المكوّنما يقدّمهالصفحة
adk-devtoolsأدوات الحلقة الداخلية — read_file وwrite_file وedit_file وglob وgrep وbash — المقيّدة بنطاق دليل مساحة عملأدوات التطوير
CodingAgent (في adk-agent، الميزة coding)أداة تشغيل باستدعاء واحد تربط تلك الأدوات + أداة write_todos للتخطيط + مطالبة موجزة بـ LlmAgentأداة التشغيل
CLI (adk-rust code / goal / ultracode)أوامر أصلية: مهام تُنفَّذ مرة واحدة، ووضع الأهداف المستقلة، والمراجعة الفائقة المتوازيةCLI
سير عمل الرسوم البيانية (adk-graph)توزيع العمل على وكلاء متخصصين متوازيين ثم توليف النتائج — نمط «فائق»سير العمل
أمثلةثلاث حزم أمثلة قابلة للتشغيلأمثلة

هل أنت جديد على ADK-Rust؟ اقرأ المقدمة و البدء السريع أولًا. يبني هذا القسم على الوكلاء والأدوات والجلسات، وعلى الذاكرة والرسوم البيانية اختياريًا.

ما يمكنك بناؤه

  • مهمة برمجية تُنفَّذ دفعة واحدة — «اجعل الاختبار الفاشل ينجح»، «أضف مسار /health». يستكشف الوكيل ويعدّل ويُجري الاختبارات ثم يقدّم تقريرًا.
  • وضع الهدف المستقل — امنح هدفًا + شرط نجاح يمكن التحقق منه (أمرًا يجب أن ينتهي بالرمز 0)؛ ويكرر الوكيل العملية التخطيط ← التنفيذ ← التحقق، مصححًا نفسه حتى ينجح أو تنفد الميزانية. دائم وقابل للاستئناف. (بنمط Codex/Hermes /goal.)
  • سير عمل المراجعة فائقة الدقة — نفّذ المهمة، ثم وزّعها على مراجعين متوازيين للصحة والحالات الحدّية والأسلوب، واجمع أحكامهم، ثم راجع التنفيذ حتى يوافقوا. (بنمط Claude Code ultracode/ultrareview.)

التثبيت

# The harness (pulls in the dev tools) + a model provider
adk-agent = { version = "2.1.0", features = ["coding"] }
adk-devtools = "2.1.0"
adk-model = { version = "2.1.0", features = ["gemini"] }
adk-runner = "2.1.0"
adk-session = "2.1.0"

أدوات التطوير ذات أولوية للحماية في بيئة معزولة ولا تعتمد على تبعيات ضخمة، لذا يظل حجمها صغيرًا؛ ولا حاجة إلى adk-graph إلا من أجل سير العمل المتوازي.

البدء السريع خلال 60 ثانية

use adk_agent::coding::CodingAgent;
use adk_devtools::Workspace;
use adk_runner::Runner;
use adk_session::{CreateRequest, InMemorySessionService, SessionService};
use adk_core::{Content, SessionId, UserId};
use std::sync::Arc;

# async fn run(model: std::sync::Arc<dyn adk_core::Llm>) -> anyhow::Result<()> {
// One call builds a coding agent over a confined workspace.
let coding = CodingAgent::builder()
    .model(model)
    .workspace(Workspace::new("./my-repo"))
    .build()?;

let sessions: Arc<dyn SessionService> = Arc::new(InMemorySessionService::new());
sessions.create(CreateRequest {
    app_name: "demo".into(), user_id: "u".into(),
    session_id: Some("s".into()), state: Default::default(),
}).await?;

let runner = Runner::builder()
    .app_name("demo")
    .agent(coding.agent())          // -> Arc<dyn Agent>
    .session_service(sessions)
    .build()?;

let mut events = runner
    .run(UserId::new("u")?, SessionId::new("s")?,
         Content::new("user").with_text("Add a function add(a,b) to add.py and run it."))
    .await?;
// stream `events`: FunctionCall / FunctionResponse / Text …
# Ok(()) }

هل تفضّل الطرفية؟ ينفّذ adk-rust code "make the failing test pass" الأمر نفسه — راجع CLI.

إلى أين تذهب بعد ذلك

  1. أدوات التطوير — مجموعة الأدوات وWorkspace المعزول.
  2. الإطارCodingAgent، وحلقة التخطيط، وأنماط الأذونات.
  3. CLIcode، وgoal (دائم/قابل للاستئناف)، وultracode.
  4. سير العمل — مراجعة فائقة متوازية على adk-graph.
  5. الأمثلة — ثلاث حزم أمثلة قابلة للتشغيل.

راجع أيضًا الأساس المنطقي الكامل للتصميم في docs/design/coding-agent.md.

وكيل البرمجة - وثائق ADK-Rust | ADK-Rust