본문으로 건너뛰기
cccskills
무료GitHub에 공개

architecture-overview

Use when asked about harness9 architecture, module design, or how components interact — explains the system design

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

연동 도구OpenAI
설치 방법 보기

포함된 파일(1)

  • SKILL.md3.8 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

harness9 架构概览

核心设计原则

原则说明
简洁最小化抽象层,极少的直接依赖
完备覆盖 Agent 运行所需的全部核心模块
生产可用错误恢复、超时控制、路径沙箱、并发安全

标准 ReAct 循环

Turn N:
  LLM(messages + tools) → 推理 + 工具调用决策
  → 并发执行所有工具调用 → Observation 注入 context
  → Turn N+1

自然终止:模型不再发起工具调用 → 输出最终回复

三重终止保障:

  1. 自然终止:len(responseMsg.ToolCalls) == 0
  2. MaxTurns:默认 50,可通过 WithMaxTurns 配置
  3. Context 取消:外部 cancel() 或超时

模块依赖关系

cmd/harness9 (入口)
    ├── internal/context (System Prompt 组装)
    │       └── internal/skills (Skills 解析 + 索引)
    ├── internal/engine (ReAct 主循环)
    │       ├── internal/provider (LLM 调用)
    │       ├── internal/tools (工具注册 + 执行)
    │       └── internal/schema (数据类型)
    └── internal/env (配置加载)

关键设计决策:接口定义在使用者侧

  • tools.Registry 接口定义在 tools 包,engine 包依赖它
  • engine.PromptBuilder 接口定义在 engine 包,context 包实现它
  • skills.UseSkillTool 通过 Go 结构类型满足 tools.BaseTool 接口,不需要 import tools 包(避免循环依赖)

关键数据流

TUI 模式

用户输入 → RunTUI → eng.RunStream(ctx, prompt)
    → engine.Event stream → 逐 token 追加到对话视图
    → ToolCalls → Spinner 动画 + 耗时计数
    → EventDone → 最终回复渲染到屏幕

CLI 模式(管道 / CI)

用户输入 → RunCLI → eng.Run(ctx, prompt)
    → runLoop → LLM Generate
    → ToolCalls → 并发执行 → ToolResults → 继续循环
    → 最终回复打印到 stdout

System Prompt 组装

DefaultPromptBuilder.Build() 按顺序组装:

  1. 基础 Prompt:角色定义 + workDir
  2. AGENTS.md:项目级规范(文件不存在时跳过)
  3. Skills 索引:- name: description 列表(为空时跳过)

完整内容示例:

You are harness9, an expert coding assistant...

## Project Guidelines (AGENTS.md)
{AGENTS.md 全文}

## Available Skills
Use the `use_skill` tool to load full content of any skill when needed.
- go-coding-standards: Use when writing or reviewing Go code...
- debugging-guide: Use when debugging Go errors...

Provider 抽象

type LLMProvider interface {
    Generate(ctx, messages, tools) (Message, error)
    GenerateStream(ctx, messages, tools) (<-chan StreamChunk, error)
}

当前实现:

  • OpenAIProvider:兼容所有 OpenAI Chat Completions API(包括 OpenRouter、Azure)
  • AnthropicProvider:Anthropic Messages API

Anthropic 约束:user/assistant 消息必须严格交替,禁止连续 assistant 消息。

工具系统

type BaseTool interface {
    Name() string
    Definition() schema.ToolDefinition  // JSON Schema,传给 LLM
    Execute(ctx context.Context, args json.RawMessage) (string, error)
}

内置工具:

工具说明
bashShell 命令执行,workDir 为 CWD
read_file文件读取,4096 字节截断
write_file文件写入,自动 mkdir
edit_file字符串替换编辑,多级模糊匹配
use_skill按需加载 Skill 全文

所有文件工具通过 safePath() 校验路径,防止 Path Traversal 攻击。

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

autodev

무료

Feature auto-development — clarify requirements, generate spec, dispatch dev sub-agent to implement and merge into current branch

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ZhangShenao/harness91422026년 10월 19일 업데이트

commit

무료

Use when the user invokes /commit or asks to commit changes, after a code review has been completed and the changes are confirmed ready to stage and commit to git.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ZhangShenao/harness91422026년 10월 19일 업데이트

cr

무료

Use when the user invokes /cr, requests a code review, or before committing to verify correctness, security, and quality of new or modified code in the working tree.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ZhangShenao/harness91422026년 10월 19일 업데이트

Use when debugging Go errors, test failures, or unexpected behavior — step-by-step diagnosis approach

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ZhangShenao/harness91422026년 10월 19일 업데이트

Use when writing or reviewing Go code — explains harness9 project coding conventions and patterns

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ZhangShenao/harness91422026년 10월 19일 업데이트

pr

무료

Use when the user invokes /pr or asks to push changes and open a pull request, after commits are ready to be pushed to a remote branch and merged into the main branch.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

ZhangShenao/harness91422026년 10월 19일 업데이트

ZhangShenao의 스킬 모두 보기

이 스킬의 문제 신고