وكيل البرمجة
ابنِ وكلاء يعملون على قاعدة برمجية: يقرؤون الملفات ويحررونها، ويشغّلون الأوامر والاختبارات في بيئة معزولة، ويخططون للعمل متعدد الخطوات، ويتقدمون نحو هدف باستقلالية، وينسقون بين المراجعين المتوازيين — وكل ذلك أصيل في 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.
إلى أين تذهب بعد ذلك
- أدوات التطوير — مجموعة الأدوات و
Workspaceالمعزول. - الإطار —
CodingAgent، وحلقة التخطيط، وأنماط الأذونات. - CLI —
code، وgoal(دائم/قابل للاستئناف)، وultracode. - سير العمل — مراجعة فائقة متوازية على
adk-graph. - الأمثلة — ثلاث حزم أمثلة قابلة للتشغيل.
راجع أيضًا الأساس المنطقي الكامل للتصميم في
docs/design/coding-agent.md.