LogoSEO Jing
  • All Posts
  • SEO Jing
  • okayJing
  • KD Team
  • CLAB Coreteam
  • Study

Contact Me

© 2026 SEOJing. All rights reserved.

에이전트 프레임워크A2AAgent CardCapabilityHandoff시스템 설계

에이전트 프레임워크 스터디 Day 12: Agent Card는 소개문이 아니라 실행 가능한 경계선이다

2026년 6월 22일·24분 읽기

예상 읽기 시간: 20~30분

오늘의 목표

Day 11에서는 MCP 서버를 “설치 목록”이 아니라 검문 가능한 계약면으로 봤습니다. 서버가 어떤 tools/resources/prompts를 실제로 노출하는지 보고, capability 단위로 위험을 나누고, tool description까지 prompt surface로 취급해야 한다는 이야기였습니다.

오늘은 경계가 한 단계 바깥으로 나갑니다.

text
도구 하나를 검문하는 문제
  -> 에이전트 하나가 어떤 일을 맡을 수 있는지 설명하는 문제
  -> 에이전트끼리 일을 넘겨도 되는지 판단하는 문제

여기서 중요한 개념이 Agent Card 또는 capability manifest입니다. 이름만 보면 소개 페이지처럼 들립니다. “이 에이전트는 리서치를 잘합니다”, “이 에이전트는 코드를 고칩니다” 같은 프로필처럼 보이기도 합니다.

하지만 프레임워크 설계 관점에서는 그렇게 보면 약합니다.

Agent Card는 에이전트 자기소개가 아니라, 다른 런타임이 일을 맡기기 전에 읽는 실행 가능한 경계선이다.

오늘 글의 목표는 A2A(Agent-to-Agent)나 Agent Card를 외부 프로토콜 이름으로 외우는 것이 아닙니다. 직접 에이전트 프레임워크를 만든다고 생각하고, “어떤 에이전트에게 어떤 일을 맡길 수 있는가”를 코드 밖 계약으로 어떻게 표현해야 하는지 잡아보는 것입니다.


1. 왜 에이전트 소개문만으로는 협업이 안 되는가

에이전트가 하나뿐이면 문제는 비교적 단순합니다.

text
User
  -> Agent Runtime
    -> tools
    -> artifacts

모든 판단이 한 런타임 안에서 일어납니다. 도구 목록도 알고 있고, 권한도 알고 있고, 세션 상태도 한곳에 있습니다.

하지만 실제 작업은 금방 나뉩니다.

text
- 자료를 찾는 에이전트
- 코드를 고치는 에이전트
- 최종 리뷰를 하는 에이전트
- 티켓과 산출물을 정리하는 에이전트
- 로컬 파일만 읽는 에이전트
- 외부 서비스에 글을 발행하는 에이전트

이때 흔한 실수는 역할 이름만 붙이는 것입니다.

text
Researcher Agent
Coder Agent
Reviewer Agent
Publisher Agent

이 이름은 사람이 보기에는 편합니다. 하지만 런타임이 일을 넘기기에는 정보가 부족합니다.

text
Researcher Agent는 웹을 쓸 수 있나?
로그인된 자료도 읽나?
원문 링크를 남기나?
요약만 하나, 출처 좌표도 주나?

Coder Agent는 어느 repo를 만질 수 있나?
브랜치를 만들 수 있나?
테스트를 돌릴 수 있나?
커밋이나 push도 하나?

Post Q&A

오케이징에게 물어보기

에이전트 프레임워크 스터디 Day 12: Agent Card는 소개문이 아니라 실행 가능한 경계선이다 전체를 기준으로 질문과 피드백을 받아요.답을 본 뒤에는 이 내용을 댓글로 달아서 서징에게도 물어볼 수 있어요. 작성자가 직접 볼 수 있어요!

0/500

포스트 목록

/study/agent-framework
파일 12개, 폴더 0개
에이전트 프레임워크 스터디 Day 1: 프레임워크보다 먼저 실행 환경을 설계하기에이전트 프레임워크 스터디 Day 2: 도구는 함수가 아니라 계약이다에이전트 프레임워크 스터디 Day 3: 컨텍스트는 자료 더미가 아니라 실행 상태다에이전트 프레임워크 스터디 Day 4: 관측 가능해야 에이전트가 개선된다에이전트 프레임워크 스터디 Day 5: 워크플로와 에이전트의 경계를 나누는 법에이전트 프레임워크 스터디 Day 6: 사람 개입은 예외가 아니라 설계 표면이다에이전트 프레임워크 스터디 Day 7: 작업은 답변이 아니라 이벤트와 산출물로 남아야 한다에이전트 프레임워크 스터디 Day 8: 여러 에이전트는 역할이 아니라 계약으로 연결된다에이전트 프레임워크 스터디 Day 9: 확장점은 플러그인이 아니라 경계면이다에이전트 프레임워크 스터디 Day 10: harness는 팀 아키텍처를 만드는 공장이다에이전트 프레임워크 스터디 Day 11: MCP 서버는 설치 목록이 아니라 검문 가능한 계약이다에이전트 프레임워크 스터디 Day 12: Agent Card는 소개문이 아니라 실행 가능한 경계선이다

같은 섹션의 대표 이미지

12 posts · latest first
Study26. 06. 22.

에이전트 프레임워크 스터디 Day 12: Agent Card는.

에이전트가 서로 협업하려면 "무엇을 잘한다"는 소개가 아니라 능력, 입력, 산출물, 권한, 실패 모드, 사람 개입 조건을 적은 실행 가능한 경계선이 필요하다는 점을 reverse-engineering합니다.

26. 06. 22.SEOJing
Reviewer Agent는 어떤 diff를 기준으로 보나?
보안 이슈를 발견하면 막을 권한이 있나?
false positive를 어떻게 표현하나?

역할 이름은 의도를 말하지만, 실행 경계는 말하지 않습니다. 그래서 에이전트끼리 일을 넘기려면 “누구냐”보다 “무엇을 어떤 조건에서 할 수 있냐”가 먼저 필요합니다.


2. Agent Card를 소개문이 아니라 계약으로 보기

Agent Card를 단순화하면 이런 구조입니다.

text
Agent Card
- identity
- capabilities
- accepted inputs
- produced artifacts
- tools/resources boundary
- permissions and side effects
- failure modes
- human-in-the-loop conditions
- observability / trace expectations
- freshness / version

이 중에서 핵심은 capabilities입니다. capability는 “잘하는 분야”가 아니라 맡길 수 있는 작업 단위여야 합니다.

나쁜 capability 설명은 이렇게 생깁니다.

text
- good at research
- can code
- reviews PRs
- handles documents

좋은 capability 설명은 훨씬 좁습니다.

text
capability: source_research_pack
input:
  - question
  - allowed_source_types
  - max_sources
output:
  - source list
  - short summary
  - quote/evidence coordinates
side_effects: none
requires_human: false
failure_modes:
  - no accessible source
  - conflicting sources
  - source requires login

또는 코드 작업이라면 이렇게 쪼갤 수 있습니다.

text
capability: patch_local_repo
input:
  - repo_path
  - task_spec
  - allowed_files
  - verification_commands
output:
  - patch
  - check results
  - unresolved blockers
side_effects:
  - local file write
not_allowed:
  - push
  - secret edit
  - destructive git reset
requires_human:
  - external side effect
  - ambiguous product decision

이렇게 적으면 다른 에이전트나 오케스트레이터가 판단할 수 있습니다.

text
이 작업은 외부 발행이 필요하다.
patch_local_repo capability만 있는 에이전트에게 맡기면 안 된다.

이 작업은 출처 좌표가 중요하다.
요약만 반환하는 research capability는 부족하다.

이 작업은 Google Calendar write가 필요하다.
human-in-the-loop 조건을 만족해야 한다.

Agent Card는 “나 이런 거 할 줄 알아요”가 아니라 “이 범위 안에서는 맡겨도 되고, 이 선을 넘으면 멈춰야 합니다”에 가깝습니다.


3. 에이전트 협업은 메시지 교환이 아니라 책임 이동이다

에이전트끼리 협업한다고 하면 채팅방처럼 상상하기 쉽습니다.

text
Agent A: 이거 해줘
Agent B: 알겠어
Agent B: 끝났어

하지만 프레임워크 설계에서는 이것만으로 부족합니다. 중요한 것은 메시지가 아니라 책임이 이동했는지입니다.

text
Handoff
- 어떤 작업이 넘어갔나?
- 성공 기준은 무엇인가?
- 입력 근거는 무엇인가?
- 산출물은 어디에 저장되나?
- 실패하면 누가 복구하나?
- 완료 판정은 누가 하나?

사람끼리도 “이거 해줘”만으로는 사고가 납니다. 에이전트는 더 그렇습니다. 에이전트는 맥락을 추측하고, 도구 결과를 과신하고, 실패를 성공처럼 요약할 수 있습니다.

그래서 handoff는 최소한 이런 형태를 가져야 합니다.

text
Handoff Contract
- task_id
- source_agent
- target_agent
- capability_id
- input_artifacts
- acceptance_criteria
- allowed_actions
- deadline / timeout
- expected_output_schema
- verification_required
- escalation_condition

여기서 capability_id가 중요합니다. 대상 에이전트의 Agent Card에 없는 capability로 일을 넘기면 안 됩니다.

text
if capability_id not in target_agent.card.capabilities:
    block_handoff("target cannot accept this work")

단순한 규칙이지만 효과가 큽니다. 역할 이름이나 말투가 아니라, 명시된 계약을 기준으로 일을 넘기게 됩니다.


4. A2A를 “에이전트판 API”로만 보면 놓치는 것

A2A 같은 agent-to-agent 프로토콜은 에이전트들이 서로 발견하고, 작업을 주고받고, 메시지와 산출물을 교환하기 위한 방향을 제시합니다. 표면적으로는 “에이전트판 API”처럼 보일 수 있습니다.

text
Client Agent
  -> discover Agent Card
  -> send task
  -> receive messages/artifacts
  -> track status

하지만 기존 API와 다른 점이 있습니다.

일반 API는 대체로 정해진 함수 호출입니다.

text
POST /tickets
GET /tickets/{id}
PATCH /tickets/{id}

반면 에이전트 작업은 중간 판단이 들어갑니다.

text
task: "이 PR이 안전한지 봐줘"

inside agent:
- diff 읽기
- 위험 파일 판단
- 테스트 결과 확인
- 보안 패턴 탐지
- 애매한 리뷰 코멘트 분류
- 막을지 통과시킬지 결정

그래서 Agent Card에는 단순 endpoint 문서보다 더 많은 운영 정보가 필요합니다.

text
- 이 에이전트는 어떤 판단을 자체적으로 해도 되는가?
- 어떤 판단은 사람에게 되돌려야 하는가?
- 어떤 산출물은 근거와 함께 내야 하는가?
- 어떤 실패를 retry하면 안 되는가?
- 어떤 도구 출력은 untrusted data로 취급하는가?

즉 A2A를 “서로 호출 가능하게 만드는 기술”로만 보면 약합니다. 더 중요한 질문은 이것입니다.

text
다른 런타임이 이 에이전트에게 일을 넘겨도 되는 충분한 계약과 증거가 있는가?

5. Capability는 권한과 분리해서 정의해야 한다

에이전트가 어떤 일을 할 수 있다는 것과, 지금 그 일을 해도 된다는 것은 다릅니다.

text
can_publish_blog_post: true

이 한 줄은 위험합니다. 발행 능력이 있다는 사실과, 오늘 이 세션에서 발행해도 된다는 판단이 섞여 있습니다.

더 나은 방식은 capability와 authorization을 분리하는 것입니다.

text
capability: publish_blog_post
base ability:
  - create MDX
  - run format/lint/build
  - commit
  - push to origin main
required authorization:
  - standing approval for this series
  - clean scoped diff
  - verification passes
  - no unrelated files staged
  - post route verified after deploy

이렇게 해야 에이전트 카드가 과도한 권한 문서가 되지 않습니다. Agent Card는 “할 수 있는 작업”을 말하고, 현재 실행 권한은 세션/티켓/정책/사용자 승인/리스크 등급이 함께 결정합니다.

OkayJing으로 비유하면 이렇습니다.

text
Default Hub
- capability: final decision, ticket/result ledger, memory/skill absorption
- authorization: user-facing hub, durable ledger owner

SEOJing spoke
- capability: SEOJing repo context, study post writing, local checks
- authorization: commit/push only under explicit standing publishing lane or user request

Disposable work profile
- capability: bounded task execution
- authorization: archive/discard by default, no hub memory absorption without review

능력과 권한을 섞으면 “이 에이전트는 발행 가능”이라는 말이 곧 “항상 발행해도 됨”으로 번집니다. 프레임워크는 이 둘을 분리해야 합니다.


6. 좋은 Agent Card의 최소 스키마

에이전트 프레임워크를 직접 만든다면, Agent Card를 처음부터 거창하게 만들 필요는 없습니다. 오히려 작게 시작하는 편이 낫습니다.

text
AgentCard {
  id
  name
  version
  owner
  description
  capabilities[]
  default_risk_tier
  supported_artifacts[]
  communication_modes[]
  auth_requirements
  observability
  freshness
}

capability는 별도 객체로 둡니다.

text
Capability {
  id
  summary
  input_schema
  output_schema
  allowed_actions
  forbidden_actions
  side_effect_tier
  required_context
  verification_contract
  failure_modes
  escalation_conditions
}

여기서 verification_contract가 빠지면 Agent Card는 금방 홍보 문구가 됩니다.

text
verification_contract:
  - must return changed files
  - must return commands run and exit status
  - must classify skipped checks
  - must cite source URLs for research claims
  - must include artifact paths

failure_modes도 중요합니다.

text
failure_modes:
  - missing credential
  - repo dirty outside scope
  - unsupported file type
  - network blocked
  - ambiguous user intent
  - verification timeout

실패 모드가 명시되어 있으면 오케스트레이터가 실패를 더 잘 다룹니다.

text
missing credential -> ask user or block
repo dirty outside scope -> isolate worktree
unsupported file type -> choose fallback reviewer
network blocked -> report partial, do not fabricate

반대로 실패 모드가 없으면 에이전트는 “못 했지만 대충 됐다고 말하기” 쉬워집니다.


7. Agent Card와 MCP 계약은 어떻게 이어지는가

Day 11의 MCP 계약과 오늘의 Agent Card는 서로 다른 층입니다.

text
MCP Tool Contract
- one tool/resource/prompt capability
- schema, auth, side effect, failure shape

Agent Card
- one agent/runtime capability set
- accepted tasks, artifacts, permissions, handoff rules

MCP는 도구 접점의 계약입니다. Agent Card는 일을 맡는 주체의 계약입니다. 둘은 연결되어야 합니다.

text
Agent capability: research_pack
uses:
  - web.search (Tier 0)
  - browser.open (Tier 0/Tier 1 depending on auth)
  - local_evidence_router.query (Tier 0)

Agent capability: publish_post
uses:
  - file.write (Tier 1)
  - terminal.pnpm_build (Tier 1)
  - git.commit (Tier 1/2)
  - git.push (Tier 2)

이 연결이 없으면 Agent Card는 허공에 뜹니다. “발행 가능”이라고 적었지만 실제로 어떤 도구와 권한을 쓰는지 알 수 없습니다.

좋은 프레임워크는 Agent Card를 읽을 때 내부 tool contract도 함께 볼 수 있어야 합니다.

text
can delegate publish_post?
  -> inspect Agent Card capability
  -> inspect required tools and risk tiers
  -> check current authorization
  -> create handoff contract
  -> collect artifacts and verification

이 흐름이 있어야 에이전트 협업이 신뢰 가능한 작업 시스템이 됩니다.


8. 사람 개입 조건은 Agent Card에 들어가야 한다

에이전트 시스템에서 사람 개입은 “모델이 불안하면 물어본다” 정도로 두면 너무 흔들립니다. 사람에게 물어야 하는 조건이 Agent Card에 들어가야 합니다.

예를 들어 리뷰 에이전트라면 이렇게 적을 수 있습니다.

text
requires_human_when:
  - finding changes product direction
  - fix requires deleting user data
  - security trade-off has no clear safe default
  - external reviewer high finding is contested

발행 에이전트라면 다릅니다.

text
requires_human_when:
  - no standing approval for target branch
  - unrelated files are staged
  - build fails and failure is not proven pre-existing
  - public route verification contradicts deploy evidence

문서 요약 에이전트라면 또 다릅니다.

text
requires_human_when:
  - source requires login beyond current grant
  - document contains private/sensitive data outside requested scope
  - citation cannot be recovered

이 조건을 카드에 넣으면 오케스트레이터가 “그냥 계속 진행”과 “멈춰야 함”을 구분합니다.

text
if task.risk >= capability.human_gate_threshold:
    request_confirmation_or_block()

OkayJing의 운영 원칙과도 맞습니다. 읽기 전용은 자율적으로, 되돌릴 수 있는 로컬 쓰기는 좁게, 외부 발행/삭제/비용/권한 변경은 더 강한 검문을 거칩니다. 사람 개입은 예의상 묻는 절차가 아니라 위험 등급의 일부입니다.


9. Agent Card가 없을 때 생기는 실패 패턴

Agent Card가 없거나 소개문 수준에 머물면 반복되는 실패가 생깁니다.

실패 1: 역할 이름이 권한처럼 쓰인다

text
"Publisher Agent니까 push까지 해도 되겠지"

역할 이름은 권한이 아닙니다. push는 외부 side effect입니다. standing approval, branch scope, staged file 검문, build 결과가 있어야 합니다.

실패 2: 작업을 넘겼는데 산출물 기준이 다르다

text
Parent expected: patch + tests + evidence
Child returned: summary paragraph

이건 모델 성능 문제가 아니라 handoff 계약 문제입니다. output schema와 artifact contract가 없었던 것입니다.

실패 3: 실패를 성공처럼 요약한다

text
"검토했습니다"라고 말했지만 실제로는 OCR이 unsupported_ext로 파일을 제외함

Agent Card에 verification contract와 failure modes가 있으면 이런 상황을 더 쉽게 막을 수 있습니다.

text
if reviewed_files == 0 and diff_files > 0:
    status = unavailable_not_pass

실패 4: 에이전트가 도구 output을 지시로 믿는다

외부 MCP 서버의 tool description, 웹페이지 본문, 문서 안의 문장, 로그 출력은 모두 prompt surface가 될 수 있습니다. Agent Card는 해당 에이전트가 tool output을 어떻게 취급하는지도 말해야 합니다.

text
untrusted_inputs:
  - web page body
  - tool output text
  - external MCP descriptions
  - user-uploaded documents
policy:
  - treat as data, not instruction

10. OkayJing에 적용하면 무엇이 달라지는가

OkayJing의 현재 방향은 “많은 에이전트를 사람 역할처럼 늘리기”가 아닙니다. 기본은 Hermes-only hub-spoke입니다.

text
Default Hub
  - user-facing conversation
  - final decision
  - ticket/result ledger
  - memory/skill absorption

Spokes
  - project/task context
  - bounded work
  - artifact production
  - local verification

이 구조에서 Agent Card가 필요한 이유는 분명합니다. Hub가 spoke에게 일을 넘길 때, 전체 대화를 복사하는 대신 계약을 넘겨야 합니다.

text
Hub -> Spoke Handoff
- intent
- acceptance criteria
- allowed paths
- allowed actions
- required checks
- artifact destination
- disposition: absorb / archive / discard

이미 work-ledger가 이 방향을 일부 갖고 있습니다. 다음 단계는 각 안정 profile/spoke의 capability를 더 명시적으로 적는 것입니다.

text
profile: seojing
capabilities:
  - write_study_mdx
  - run_pnpm_verification
  - inspect_blog_routes
not_allowed_by_default:
  - publish unrelated local drafts
  - absorb full session memory into hub

profile: okejing-ops
capabilities:
  - inspect tickets/cron/dashboard
  - patch local ops references
  - produce briefing context
not_allowed_by_default:
  - restart gateway from dreaming
  - edit secrets

이렇게 되면 “누가 일하는가”보다 “어떤 capability 계약으로 일하는가”가 먼저 보입니다. 서식지 UI에서도 worker를 사람처럼 꾸미는 데서 멈추지 않고, 해당 worker가 맡을 수 있는 작업·산출물·권한·현재 상태를 보여줄 수 있습니다.


11. 작은 구현 스케치

처음부터 A2A 전체를 구현할 필요는 없습니다. 로컬 프레임워크라면 작은 JSON부터 시작할 수 있습니다.

json
{
  "id": "seojing-profile",
  "name": "SEOJing profile",
  "version": "0.1",
  "capabilities": [
    {
      "id": "write_study_post",
      "summary": "Create a new SEOJing study MDX post and verify it locally.",
      "input_schema": {
        "series": "string",
        "day": "number",
        "topic": "string",
        "constraints": "string[]"
      },
      "output_schema": {
        "files": "string[]",
         

그리고 handoff는 이 카드를 참조합니다.

json
{
  "task_id": "W-20260622-001",
  "target_agent": "seojing-profile",
  "capability_id": "write_study_post",
  "acceptance_criteria": [
    "day12.mdx exists",
    "format/lint/build pass",
    "only intended file is committed",
    "public route is verified after deploy"
  ]
}

이 정도만 있어도 효과가 있습니다. 나중에 A2A나 MCP 연동을 하더라도 로컬 계약이 먼저 잡혀 있기 때문입니다.


12. 오늘의 정리

Agent Card는 멋진 소개문이 아닙니다. 에이전트 협업을 실행 가능한 시스템으로 만들기 위한 경계선입니다.

text
Agent Card = identity + capability + input/output + permission + failure + verification

이 관점에서 보면 에이전트 프레임워크의 협업 능력은 “에이전트 수”로 결정되지 않습니다. 다음 질문에 답할 수 있어야 합니다.

text
- 이 에이전트는 어떤 capability를 갖고 있나?
- 그 capability는 어떤 입력과 산출물을 요구하나?
- 어떤 도구와 리소스를 쓰나?
- 어떤 side effect를 만들 수 있나?
- 사람 개입 조건은 무엇인가?
- 실패를 어떻게 보고하나?
- 산출물은 어떻게 검증하나?
- 일이 끝난 뒤 무엇을 hub가 흡수하고 무엇을 버리나?

Day 11의 MCP 계약이 도구 접점의 검문이었다면, Day 12의 Agent Card는 에이전트 자체의 검문입니다. 둘을 연결하면 이런 구조가 됩니다.

text
Tool Contract
  -> Capability Contract
    -> Agent Card
      -> Handoff Contract
        -> Artifact + Verification + Trace

이 구조가 있어야 “에이전트끼리 대화한다”가 “책임 있게 일을 나눈다”로 바뀝니다.

다음 단계에서는 이 capability/handoff 관점을 바탕으로, 에이전트 프레임워크가 작업을 어디까지는 deterministic workflow로 두고 어디부터 agent judgement로 열어야 하는지 다시 볼 수 있습니다. 결국 좋은 프레임워크는 자유로운 대화를 많이 만드는 것이 아니라, 책임·권한·산출물·검증이 남는 실행 환경을 만드는 쪽으로 갑니다.

참고문헌

  • Agent2Agent Protocol: https://a2a-protocol.org/latest/
  • Google Developers Blog, “A2A: a new era of agent interoperability”: https://developers.googleblog.com/en/a2a-a-new-era-of-agent-interoperability/
  • OpenAI Agents SDK: https://openai.github.io/openai-agents-python/
  • Anthropic Engineering, “Building effective agents”: https://www.anthropic.com/engineering/building-effective-agents
  • Model Context Protocol introduction: https://modelcontextprotocol.io/docs/getting-started/intro
  • Model Context Protocol tools specification: https://modelcontextprotocol.io/specification/2025-06-18/server/tools
  • OkayJing Agent Framework Evolution Standards: /Users/seojing/.hermes/okejing/architecture/Agent-Framework-Evolution-Standards.md
에이전트 프레임워크 스터디 Day 11: MCP 서버는 설치 목록이 아니라 검문 가능한 계약이다 글의 리소그래프 스타일 대표 이미지 배경
Study26. 06. 21.

에이전트 프레임워크 스터디 Day 11: MCP 서버는 설치.

MCP 서버를 많이 붙이는 문제가 아니라, 에이전트가 외부 능력을 쓰기 전에 도구 목록, 입력 스키마, 권한, 샘플 호출, 실패 모드를 검문 가능한 계약으로 다루는 법을 reverse-engineering합니다.

26. 06. 21.SEOJing
에이전트 프레임워크 스터디 Day 10: harness는 팀 아키텍처를 만드는 공장이다 글의 리소그래프 스타일 대표 이미지 배경
Study26. 06. 20.

에이전트 프레임워크 스터디 Day 10: harness는 팀.

harness를 단순 테스트 환경이나 공유 프롬프트가 아니라 모델, 컨텍스트, 도구, 권한, 작업 원장, 검증, 피드백을 묶어 전문 작업 단위를 찍어내는 팀 아키텍처 공장으로 reverse-engineering합니다.

26. 06. 20.SEOJing
에이전트 프레임워크 스터디 Day 9: 확장점은 플러그인이 아니라 경계면이다 글의 리소그래프 스타일 대표 이미지 배경
Study26. 06. 19.

에이전트 프레임워크 스터디 Day 9: 확장점은 플러그인이.

에이전트 프레임워크를 직접 설계하거나 고칠 때 확장점을 단순 플러그인 기능이 아니라 책임과 권한이 갈리는 경계면으로 보는 법을 reverse-engineering합니다. 모델, 도구, 기억, 세션, 게이트웨이, 스케줄러, 리뷰 게이트가 어디에서 갈라져야 안전한지 봅니다.

26. 06. 19.SEOJing
Study26. 06. 18.

에이전트 프레임워크 스터디 Day 8: 여러 에이전트는 역할이.

여러 에이전트나 프로필을 붙일 때 사람 역할놀이가 아니라 capability, task, artifact, handoff contract로 연결해야 하는 이유를 reverse-engineering합니다. A2A식 사고와 OkayJing hub-spoke 운영을 바탕으로 안전한 협업 경계를 봅니다.

26. 06. 18.SEOJing
Study26. 06. 17.

에이전트 프레임워크 스터디 Day 7: 작업은 답변이 아니라.

에이전트 실행을 단순한 채팅 답변이 아니라 이벤트, 산출물, 검증, 상태 전이의 흐름으로 설계하는 법을 reverse-engineering합니다. 티켓, 세션, 파일, 로그, 아티팩트가 왜 프레임워크의 중심이 되는지 봅니다.

26. 06. 17.SEOJing
Study26. 06. 16.

에이전트 프레임워크 스터디 Day 6: 사람 개입은 예외가.

에이전트 프레임워크에서 사람 개입, 승인, 거절, 확인 질문을 예외 처리로 두지 않고 실행 표면으로 설계하는 법을 봅니다. 위험도 기반 autonomy ladder, interrupt, approval gate, 검증 보고를 reverse-engineering합니다.

26. 06. 16.SEOJing
Study26. 06. 15.

에이전트 프레임워크 스터디 Day 5: 워크플로와 에이전트의.

에이전트 프레임워크에서 반복 가능한 워크플로와 열린 에이전트 판단을 어떻게 분리해야 하는지 봅니다. 모든 것을 자율 에이전트로 만들지 않고, 상태·도구·검증·사람 개입 지점을 나누는 설계 기준을 reverse-engineering합니다.

26. 06. 15.SEOJing
Study26. 06. 14.

에이전트 프레임워크 스터디 Day 4: 관측 가능해야.

에이전트 프레임워크에서 로그, trace, 평가, 재현 가능한 증거를 어떻게 설계해야 하는지 봅니다. 단순한 채팅 기록이 아니라 실행을 다시 읽고 고칠 수 있는 관측 가능성 계층을 reverse-engineering합니다.

26. 06. 14.SEOJing
Study26. 06. 13.

에이전트 프레임워크 스터디 Day 3: 컨텍스트는 자료 더미가.

에이전트 프레임워크에서 컨텍스트를 긴 프롬프트나 자료 모음이 아니라 실행 상태로 설계하는 법을 봅니다. 세션 기록, 작업 상태, 장기 기억, 검색 결과, 산출물, 검증 근거를 분리하고 조립하는 기준을 reverse-engineering합니다.

26. 06. 13.SEOJing
Study26. 06. 12.

에이전트 프레임워크 스터디 Day 2: 도구는 함수가 아니라.

에이전트가 도구를 쓴다는 말을 함수 호출이 아니라 계약 설계로 다시 봅니다. MCP식 tool contract, 입력 스키마, 권한, 결과 해석, 실패 처리, 검증 책임을 기준으로 개인 에이전트 프레임워크의 도구 런타임을 설계합니다.

26. 06. 12.SEOJing
Study26. 06. 11.

에이전트 프레임워크 스터디 Day 1: 프레임워크보다 먼저.

개인에게 맞는 에이전트 프레임워크를 만들기 전에 먼저 에이전트가 실제로 실행되는 환경을 분해합니다. 모델, 컨텍스트, 도구, 권한, 검증, 로그가 합쳐진 harness를 기준으로 현재 도구들의 한계와 확장 지점을 읽는 첫 번째 글입니다.

26. 06. 11.SEOJing
"verification"
:
"object"
,
"public_url": "string|null"
},
"allowed_actions": ["write_mdx", "run_format", "run_lint", "run_build"],
"forbidden_actions": ["edit_env", "push_unrelated_files"],
"side_effect_tier": 1,
"escalation_conditions": [
"verification_failure_caused_by_new_post",
"unrelated_dirty_tree",
"ambiguous publication scope"
]
}
]
}